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

    享元模式 Flyweight

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

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

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

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

    何时使用:

    1. 系统中有大量对象

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

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

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

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

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

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

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

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

     

  • 相关阅读:
    远程访问Linux系统桌面
    NFS原理详解
    编译portmap和nfs-utils
    NFS资料
    PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
    usb资料2
    USB相关资料
    书籍
    最详细的Log4j使用教程
    iOS开发UI篇—无限轮播(新闻数据展示)
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/10537347.html
Copyright © 2011-2022 走看看