大话设计模式读书笔记--21.享元模式

定义

享元模式定义:

运用共享的技术有效地支持大量细粒度的对象。

内部状态和外部状态:

在享元对象内部,不会随环境改变而改变的状态称为内部状态, 否则是外部状态, 在调用享元对象时,把外部状态传给它

比如:

在开发棋类游戏时,如果每一个棋子都代表一个对象,那实例数会很多,仔细分析会发现,围棋和五子棋只有黑白两色,各个棋子的差别是位置的不同,
把颜色放在一个类中,这是内部状态,把坐标放在另一个类中,这是外部状态,从n多类变为了两个类,大大减少了实例数

 模式结构

代码实现

场景: 博客园是一个大型的网站,每个人的博客是一个小型的网站,根据用户的id,展示的内容不一样, 因此数据和模板不同,但代码核心和数据库是共享的

代码: 点击下载

特点和使用场景

优点: 避免大量相似类的开销

使用场景: 程序中使用了大量的对象,造成了很大的存储开销,导致运行时资源和性能受到影响

posted @ 2017-03-12 00:29  liuconglin  阅读(260)  评论(0编辑  收藏  举报