设计模式之享元模式
2017-10-09 本文已影响0人
当一只吃饱了睡睡饱了吃的___
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。
UML图:
需求:
我们将创建一个Shape接口和实现了Shape接口的实体类Circle。下一步是定义工厂类ShapeFactory。
ShapeFactory有一个Circle的HashMap,其中键名为Circle对象的颜色。无论何时接收到请求,都会创建一个特定颜色的圆。ShapeFactory检查它的HashMap中的 circle 对象,如果找到Circle对象,则返回该对象,否则将创建一个存储在 hashmap 中以备后续使用的新对象,并把该对象返回到客户端。
FlyWeightPatternDemo,我们的演示类使用ShapeFactory来获取Shape对象。它将向ShapeFactory传递信息(red / green / blue/ black / white),以便获取它所需对象的颜色。
Shape:
Circle:
ShapeFactory:
FlyweightPatternDemo:
我们需要创建20个对象,但实际只创建了5个对象。
享元模式主要在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。