享元模式
定义
运用共享技术支持大量细粒度的对象。
结构
FlyWeight:抽象享元类,它定义了具体享元类实现的接口。
ConcreteFlyWeight:具体享元类, 为内部状态增加存储空间。
FlyWeightFactory:享元工厂类,核心是HashMap或者HashTable,工厂类初始化时将享元对象put到集合中,根据客户端提供的标识来返回指定的享元对象。
UnsharedConcreteFlyWeight:非共享的对象。
类图
享元工厂类:
public class FlyWeightFactory {
private Hashtable<String, FlyWeight> factory = new Hashtable<String, FlyWeight>();
public FlyWeightFactory(){
factory.put("X", new ConcreteFlyWeight());
factory.put("Y", new ConcreteFlyWeight());
factory.put("Z", new ConcreteFlyWeight());
}
public Hashtable<String, FlyWeight> getFactory() {
return factory;
}
public void setFac