美文网首页
设计模式之享元模式

设计模式之享元模式

作者: 当一只吃饱了睡睡饱了吃的___ | 来源:发表于2017-10-09 10:30 被阅读0次

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

    UML图:

    需求:

    我们将创建一个Shape接口和实现了Shape接口的实体类Circle。下一步是定义工厂类ShapeFactory

    ShapeFactory有一个CircleHashMap,其中键名为Circle对象的颜色。无论何时接收到请求,都会创建一个特定颜色的圆。ShapeFactory检查它的HashMap中的 circle 对象,如果找到Circle对象,则返回该对象,否则将创建一个存储在 hashmap 中以备后续使用的新对象,并把该对象返回到客户端。

    FlyWeightPatternDemo,我们的演示类使用ShapeFactory来获取Shape对象。它将向ShapeFactory传递信息(red / green / blue/ black / white),以便获取它所需对象的颜色。

    Shape:

    Circle:

    ShapeFactory:

    FlyweightPatternDemo:

    我们需要创建20个对象,但实际只创建了5个对象。

    享元模式主要在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。

    相关文章

      网友评论

          本文标题:设计模式之享元模式

          本文链接:https://www.haomeiwen.com/subject/treuyxtx.html