迭代器与组合模式(Iterator & Composite)
-
- 单一责任原则:一个类应该只有一个引起变化的原因。
- 遵守这个原则的类容易具有高内聚。当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚。
-
要点:
- 迭代器将遍历聚合的工作封装进一个对象中。
- 我们应该努力让一个类只分配一个责任。
- 组合结构内的任意对象称为组件,组件可以是组合,也可以是叶节点。
- 在实现组合模式时,有许多设计上的折衷。根据需要平衡透明性和安全性。
迭代器模式
主要是聚合对象创建迭代器,借助单一职责的原则,从而实现客户端可以对聚合的各种对象实现相同的操作,达到代码复用的效果。


组合模式
- 特点
- 树形结构表示对象组合
- 忽略对象组合和对象个体之间的差别,即相同的操作既可以作用于对象组合,也可以作用与对象个体
-
安全性&透明性
- 组合模式以单一责任原则换取了透明性
- 通过让组件接口同时包含叶子节点和非叶子节点的操作,客户可以将叶子节点和非叶子节点一视同仁,客户不知道节点的类别
- 换取透明性的同时我们同样失去了一些安全性

《Head First 设计模式》之迭代器与组合模式——遍历合并的菜单
原文:http://www.cnblogs.com/-1307/p/6441290.html