享元模式

描述

作用:
当某个类需要被创建大量相似的对象时,会带来大量的内存开销。享元模式便是用来解决该问题。

通过将对象中相同的、不变的部分分离出来共享,来减少数据冗余,节省内存开销。

角色:
Flyweight:享元角色,即对象之间共享的部分。

UnsharedConcreteFlyweight:非享元角色,即对象之间不一样的部分。

示例:五子棋
棋子类包含“落子”方法,每颗棋子一样,因此为享元角色;
而落的位置每个棋子不同,因此再分出一个非享元角色Point类,表示位置

代码实现示例

实际应用场景

FAQ

Last Updated:
Contributors: dongyz8