为什么(GoF)Flyweight是结构性(而非创造性的)设计模式?

Nic*_*aro 6 design-patterns

据我了解,flyweight设计模式与工厂或单例设计模式没有太大不同。

它只是产生不可变(和合并)对象的工厂。它只是一个单例,为每个类型(托管对象)提供一个实例,而不是全局的单个实例。

工厂和单例是创造模式,那么为什么将举重视为结构模式?

ilu*_*tar 4

享元模式的本质不是对象的创建而是对象的共享。该模式指出要共享的对象通常保存在某些外部数据结构中,但没有指定如何创建或表示这些数据结构。

使模式结构化的是使用类似工厂的类来获取享元。这对设计施加了静态结构。