设计模式书为享元设计模式(粗体强调我的)提供了以下适用性:
适用性
Flyweight 模式的有效性在很大程度上取决于它的使用方式和位置。当满足以下所有条件时应用享元模式:
- 应用程序使用大量对象。
- 由于对象数量庞大,存储成本很高。
- 大多数对象状态都可以是外部的。
- 一旦外部状态被移除,许多对象组可能会被相对较少的共享对象所取代。
- 应用程序不依赖于对象身份。由于享元对象可能是共享的,身份测试将为概念上不同的对象返回 true。
除了存储成本(空间资源)之外,实例化成本(时间资源)是否也有助于一个有效的应用程序?