Skip to content

Latest commit

 

History

History
21 lines (14 loc) · 1.45 KB

READMED.md

File metadata and controls

21 lines (14 loc) · 1.45 KB

2.7 享元模式

享元模式旨在通过共享对象来减少内存使用和提高性能。享元模式适用于存在大量重复对象实例的情况,通过共享这些实例来减少内存消耗。 享元模式涉及两种类型的状态:内部状态(Intrinsic State)和外部状态(Extrinsic State)。 内部状态是对象共享的状态,它通常不会因为对象的上下文而变化。内部状态存储在享元对象内部,其他对象不可修改。 外部状态是对象的上下文相关的状态,它会随着对象的使用情况而变化。外部状态需要由客户端传递给享元对象,因此可以在多个对象之间共享。

案例

将享元存在工厂的map中,实现实例的复用

享元模式 优缺点

优点:

  • 减少内存消耗: 享元模式通过共享相似对象的内部状态,可以大大减少系统中的对象数量,从而降低内存消耗。
  • 提高性能: 共享对象可以减少创建对象和销毁对象的开销,从而提高系统的性能。特别是在需要频繁创建和销毁对象的场景下,享元模式可以显著提升性能。
  • 统一管理: 享元模式将相似对象的共享和管理集中在一个地方,使得系统更易于维护和管理。

缺点:

  • 实现享元模式时,需要区分内部状态和外部状态,并将外部状态传递给享元对象。这可能会增加代码复杂性,特别是在涉及多个外部状态的情况下。