定义

提供了减少对象数量从而改善应用所需的对象结构的方式。运用共享技术有效的支持大量细粒度的对象。

适用场景

  • 常常应用于系统底层的开发,以便解决系统性能的问题。
  • 系统有大量相似对象,需要缓冲池的场景。

UML

总结

  • 优点

    1. 减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率。
    2. 减少内存之外的其他资源的占用。(减少new操作所需的时间)
  • 缺点

    1. 关注内/外部状态,关注线程安全问题。
    2. 使程序的逻辑复杂化。