设计模式--享元模式

简介

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

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

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

    何时使用

  1. 一个程序中使用了大量相似的对象
  2. 由于使用了大量对象,造成很大的内存开销
  3. 对象的大多数状态都可以变为外部状态
  4. 剥离出对象的外部状态后,可以用相对较少的共享对象取代大量对象。
    5.