享元模式:运用共享技术有效地支持大量细粒度的对象。主要用于避免大量非常相似类的开销。在很多程序设计中,有时需要生成大量细粒度的类实例来表示数据,这时候可以采用享元模式来共享这些类实例,从而减少这些实例的数量。
代码示例:
享元抽象类:
package DesignPattern.FlyweightPattern;
public abstract class Flyweight {
public abstract void Operate(int i);
}
具体享元类:
package DesignPattern.FlyweightPattern;
public class ConcreateFlyweight extends Flyweight {
@Override
public void Operate(int i) {
// TODO Auto-generated method stub
System.out.println("具体享元:" + i);
}
}
享元抽象类:
package DesignPattern.FlyweightPattern;
import java.util.Hashtable;
public class FlyweightFactory {
private Hashtable flyWeights = new Hashtable();
public FlyweightFactory() {
this.flyWeights.put("A", new ConcreateFlyweight());
this.flyWeights.put("B", new ConcreateFlyweight());
this.flyWeights.put("C", new ConcreateFlyweight());
}
public Flyweight getFlyweight(String key) {
return (Flyweight) flyWeights.get(key);
}
}
主控程序类:
package DesignPattern.FlyweightPattern;
public class Client {
public static void main(String[] args) {
int i = 1;
FlyweightFactory factory = new FlyweightFactory();
Flyweight fly1 = factory.getFlyweight("A");
fly1.Operate(++i);
Flyweight fly2 = factory.getFlyweight("B");
fly2.Operate(++i);
Flyweight fly3 = factory.getFlyweight("C");
fly3.Operate(++i);
Flyweight fly4 = factory.getFlyweight("B");
fly4.Operate(++i);
Flyweight fly5 = factory.getFlyweight("B");
fly5.Operate(++i);
Flyweight fly6 = factory.getFlyweight("B");
fly6.Operate(++i);
}
}
分享到:
相关推荐
享元模式是一种设计模式,属于构造型模式,其主要目的是减少对象的数量,通过共享大量相似对象的内部状态来节省内存。这种模式在处理大量细粒度对象时特别有用,能够有效地提高系统的性能。 享元模式的核心是...
享元模式(Flyweight Pattern)是软件设计中的一种结构型设计模式,它通过共享技术来支持大量细粒度的对象,以此来降低内存中对象的数量。在PHP中实现享元模式,可以帮助我们优化程序性能,特别是在对象数目过多时,...
享元模式是一种结构型设计模式,它通过共享技术来有效支持大量细粒度对象的复用,从而减少系统中对象的数量,降低系统的内存消耗。在软件工程中,当我们需要创建大量相似但略有差异的对象时,享元模式可以提供一种...
"设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...
### 设计模式学习报告 #### 一、设计模式概述 设计模式是一种被广泛接受和使用的编程解决方案,旨在解决软件设计中的常见问题。它不仅能够帮助开发者编写出更易于理解和维护的代码,还能够促进代码的复用性。设计...
这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...
享元模式是一种设计模式,属于对象行为型模式,它的主要目的是减少系统中对象的数量,以提高性能和降低内存消耗。这种模式特别适用于那些细粒度的对象,比如在文本编辑器中,同一字符可能会频繁出现,如果为每个字符...
享元模式是一种结构型设计模式,它通过共享已有对象来减少内存中对象的数量,从而达到降低内存占用的目的。在面向对象编程中,当系统需要创建大量相似对象时,享元模式能够有效地提升性能,因为大部分对象是重复的,...
通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...
本资源"设计模式学习.zip"聚焦于C++编程语言中的设计模式应用,是2017年的一次黑马程序员培训课程的配套代码,旨在帮助学习者通过实际的代码示例来理解和掌握设计模式。 在C++中,设计模式主要分为三大类:创建型...
以上就是压缩包中的设计模式学习笔记涉及到的主要内容。通过对这些模式的理解和应用,开发者可以更好地解决软件设计中的问题,提升软件的质量和可维护性。每种模式都有其适用场景,理解其背后的意图和应用场景是关键...
总之,通过学习和实践"Android享元模式Demo",我们可以深入理解享元模式的原理和实现方式,将这种设计模式运用到Android项目中,优化资源管理,提升应用性能。在处理大量相似对象时,享元模式不失为一个优秀的解决...
"设计模式学习资料"包含了对设计模式的深入理解和应用方法,旨在帮助开发者提高软件设计的质量和可维护性。设计模式通常分为三类:创建型、结构型和行为型模式。 创建型模式关注对象的创建过程,如单例模式确保一个...
总之,《新版设计模式手册 - C#设计模式(第二版)》是学习和掌握C#设计模式的宝贵资源,通过学习和实践书中的内容,开发者能够提升软件设计能力,编写出更优雅、可维护的代码。这本书将帮助你从一个代码实现者成长为...
本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...
2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是为了提高性能,尤其是在大量对象创建时。在享元模式中,系统会共享那些具有大量相同状态的对象,从而减少内存中对象的数量,达到节省内存的目的。Java作为...
### 设计模式之我见 #### 设计模式的定义与意义 设计模式(Design Pattern)是一种在软件开发过程中被广泛采用的方法论,它基于一系列反复验证的解决方案,旨在提高代码的可读性、可重用性和可靠性。设计模式是...