设计模式(10)-Flyweight 享元模式
意图:运用共享技术有效地支持大量细粒度的对象。
在享元模式中,有一个至关重要的模块就是工厂模块。
Flyweight 模式的有效性很大程度上取决于如何使用它以及在何处使用它。当以下情况成立时使用 Flyweight 模式:
1 一个应用程序使用了大量的对象。
2 完全由于使用大量的对象,造成很大的存储开销。
3 对象的大多数状态都可以变为外部状态。
4 如果删除对象以外的状态那么可以用相对较少的共享对象取代很多组对象。
5 应用程序不依赖于对象标识。
在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。