(十二)结构型模式-享元模式

itmahy
itmahy
发布于 2024-01-19 / 44 阅读
0
0

(十二)结构型模式-享元模式

享元模式

享元模式体现的是 程序可复用 的特点,为了节约宝贵的内存,程序应该尽可能地复用,就像《极限编程》作者 Kent 在书里说到的那样:Don't repeat yourself. 简单来说 享元模式就是共享对象,提高复用性,官方的定义倒是显得文绉绉的:

享元模式:运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式。

有个细节值得注意:有些对象本身不一样,但通过一点点变化后就可以复用,我们编程时可能稍不注意就会忘记复用这些对象。比如说伟大的《超级玛丽》,谁能想到草和云更改一下颜色就可以实现复用呢?

还有里面的三种乌龟,换一个颜色、加一个装饰就变成了不同的怪:

在《超级玛丽》中,这样的细节还有很多,正是这些精湛的复用使得这一款红遍全球的游戏仅有 40KB 大小。正是印证了那句名言:神在细节之中。



评论