定义

  • 提供了减少对象数量,从而改善应用所需的对象结构的方式。应用共享技术有效地支持大量细粒度的对象。
  • 隶属于结构型设计模式

    应用场景

  • 常常应用于系统底层开发,以便解决系统的性能问题。 string 、数据库连接池

  • 系统有大量的相似对象,需要缓冲池的场景

优点

  • 减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率。
  • 减少内存之外的资源占用。比如new需要消耗时间和资源

缺点

  • 关注内/外部的状态,关注线程安全问题
  • 使得系统程序的逻辑复杂化