1. 意图
运用共享技术有效地支持大量细粒度的对象。
2. 适用性
flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它。当以下情况都
立时使用flyweight模式:
• 一个应用程序使用了大量的对象。
• 完全由于使用大量的对象,造成很大的存储开销。
• 对象的大多数状态都可变为外部状态。
• 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。
• 应用程序不依赖于对象标识。由于flyweight对象可以被共享,对于概念上明显有别的对
象,标识测试将返回真值。
在实际情况中,比如数据库连接很宝贵,某些情况下一个http连接很宝贵,我们可以把它们缓存起来,这样就可以利用享元模式:
运用共享技术有效地支持大量细粒度的对象。
2. 适用性
flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它。当以下情况都
立时使用flyweight模式:
• 一个应用程序使用了大量的对象。
• 完全由于使用大量的对象,造成很大的存储开销。
• 对象的大多数状态都可变为外部状态。
• 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。
• 应用程序不依赖于对象标识。由于flyweight对象可以被共享,对于概念上明显有别的对
象,标识测试将返回真值。
在实际情况中,比如数据库连接很宝贵,某些情况下一个http连接很宝贵,我们可以把它们缓存起来,这样就可以利用享元模式: