享元模式

简介

  • 享元模式(FlyWeight)是一种用于性能优化的模式,运用共享技术来有效支持大量细粒度的对象。主要用于
    当系统中创建了大量类似的对象从而导致内存占用过时的情况。
  • 享元模式要求将对象的属性划分为内部状态(属性)和外部状态(属性)。目标是尽量减少共享对象的数量。

如何划分内部对象和外部对象

  • 内部状态存储于对象内部。
  • 内部状态可以被一些对象共享。
  • 内部状态独立于具体的场景,通常不会改变。
  • 外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享。

何时使用

  1. 一个程序中使用了大量相似的对象
  2. 由于使用了大量对象,造成很大的内存开销
  3. 对象的大多数状态都可以变为外部状态
  4. 剥离出对象的外部状态后,可以用相对较少的共享对象取代大量对象。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 加入权限控制## 考虑这样一个问题,给系统加入权限控制,这基本上是所有的应用系统都有的功能...
    七寸知架构阅读 7,212评论 1 57
  • 定义 Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”。这里选择使用“享元模式”的意译,是因为这...
    步积阅读 5,583评论 0 2
  • 例子应用: 比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一...
    Arya鑫阅读 1,274评论 0 0
  • 3.3 对享元对象的管理## 虽然享元模式对于共享的享元对象实例的管理要求,没有实例池对实例管理的要求那么高,但是...
    七寸知架构阅读 4,695评论 0 53
  • 泪烛映白发,朝夕间,处处凄凉红豆思无芽,多情种,涩涩相望锦瑟忆华年,夕阳斜,依依缱绻佳人贴花黄,架轻舟,潋潋芳华清...
    李瑞祥阅读 7,870评论 43 36