迭代器模式: 提供一种方法顺序访问一个聚合对象中的各个元素(不必在意其数据结构),而不是暴露其内部的表示。
(适配器??相似,一个聚合对象,一个连接多个类)

组合模式: 允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
(叶子节点、组合节点!有点头晕,回想起当年C++时的无穷指针恐惧症)

设计原则: 一个类应该只有一个引起变化的原因。── 内聚


模式对比:

  • 策略 ── 封装可互换的行为,并使用委托决定使用哪一个;
  • 适配器 ── 改变一个或多个类的接口;
  • 迭代器 ── 提供一个方法来遍历集合,而无须暴露集合的实现;
  • 外观 ── 简化一群类的接口;
  • 组合 ── 客户可以将对象的集合以及个别的对象一视同仁;
  • 观察者 ── 当某个状态改变时,允许一群对象能被通知到;

关于这个东西,实在没理解太多,越是复杂组合越有用……; lightsaber文锋博客上的《深入浅出PHP面向对象与设计模式》、《用星际学习PHP设计模式》写的比较简单和直接,参考。