设计模式——享元模式
在需要创建大量相同对象的操作中,为了减少对应的对象创建,可以采用享元模式。它有效支持大量细粒度对象的复用。
UMl图:
Flyweight: 抽象享元类。所有具体享元类的超类或者接口,通过这个接口,Flyweight可以接受并作用于外部专题 。
ConcreteFlyweight: 具体享元类。指定内部状态,为内部状态增加存储空间。
UnsharedConcreteFlyweight: 非共享具体享元类。指出那些不需要共享的Flyweight子类。
FlyweightFactory: 享元工厂类。用来创建并管理Flyweight对象,它主要用来确保合理地共享Flyweight,当用户请求一个Flyweight时,FlyweightFactory就会提供一个已经创建的Flyweight对象或者新建一个(如果不存在)。
实现代码:
基类:
绘制圆形的实类:
绘制表工厂类:
通过key去存储对应的对象。
客户端类: