zoukankan      html  css  js  c++  java
  • 22、Flyweight 享元模式

    享元模式 Flyweight

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

    享元模式尝试重用现有的同类对象,如果未能找到匹配的对象,则创建新对象。

    意图: 运用共享技术有效地支持大量细粒度的对象

    主要解决: 对有大量对象时,有可能造成内存溢出,我们把其中共同的部门抽取出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重写创建

    何时使用:

    1. 系统中有大量对象

    2.这些对象消耗大量内存

    3. 这些对象的状态大部分可以外部化

    4.这些对象可以按照内存状态分为很多组

    如何解决: 用唯一识别码判别,如果在内存中有,则返回这个唯一识别码所标识的对象

    关键代码: 用 HashMap 存储这些对象

    优点:大大减少对象的创建,降低系统的内存,提高效率

    缺点: 提高系统的复杂度,需要分离出外部状态与内部状态,而且外部状态具有固有化的性值,不随着内部状态的变化而变化,否则会造成系统的混乱。

    参考:https://www.runoob.com/design-pattern/flyweight-pattern.html

     

  • 相关阅读:
    phpajax高级篇
    一天学会ajax (php环境)
    php生成静态文件的方法
    MongoDB查询文档
    MongoDB删除文档
    MongoDB索引管理
    MongoDB插入文档
    MongoDB排序记录
    MongoDB 更新文档
    mongoDB 固定集合(capped collection)
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/10537347.html
Copyright © 2011-2022 走看看