知识卡片

享元模式的定义、内外部状态与四个角色

普通读书笔记卡 · 1860.a.1

内容

享元模式用共享对象支持大量细粒度对象,是[[用共享池解决大量相似对象导致的内存 溢出]]的正式方案。内部状态可共享不随环境变;外部状态是索引标识,随环境变化。四角色: Flyweight抽象享元;ConcreteFlyweight具体享元;unsharedConcreteFlyweight不可共享 享元;FlyweightFactory享元工厂。发散:容易搞反——”内部”才是私有信息,”外部”是公共 索引键。

参考来源

- 位置:《设计模式之禅(第2版)》第28章《享元模式》(源文件:_epub-src/text/part0127.html) - 结论依据:原文给出享元模式定义并区分内部状态(可共享、存储在享元对象内部、不随环境改变)与外部状态(随环境改变、不可共享、是一批对象的统一标识),并说明Flyweight、ConcreteFlyweight、unsharedConcreteFlyweight、FlyweightFactory四个角色的职责。 - 原始内容:使用共享对象可有效地支持大量的细粒度的对象……内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境改变而改变……外部状态是对象得以依赖的一个标记,是随环境改变而改变的、不可以共享的状态。