第九章:迭代器与组合模式 - Head First 设计模式
迭代器模式
迭代器模式
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部表示。
模式类图:p332

组合模式
组合模式
允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
模式类图:p358

例子:菜单
组合模式的设计:p359图


Menu类的print():p363

组合模式要管理层次结构,还要执行菜单的操作,违背了单一责任原则。
在实现组合模式时,有许多设计上的折衷。你要根据需要平和透明性和安全性。

比较
- 组合模式:客户可以将对象的集合以及个别对象一视同仁。
- 迭代器模式:提供一个方式来遍历集合,而无需暴露集合的实现。
- 外观模式:简化一群类的接口。
- 适配器模式:改变一个或多个类的接口。
- 观察者模式:当某个状态改变时,允许一群对象能被通知到。
- 策略模式:封装可互换的行为,并使用委托决定使用哪一个。
设计原则
设计原则n:单一责任原则,一个类应该只有一个引起变化的原因,
尽量让每个类保持单一责任。高内聚。
blog comments powered by