Head First 设计模式(9)迭代器模式与组合模式

2021-07-18  本文已影响0人  kaiker

1、本章的例子——餐厅和煎饼屋合并

有两个餐厅要合并了,两个餐厅有不同的菜单,一个菜单用ArrayList写的,一个是直接用类数组写的,现在合并后,菜单需要合并在一起。

煎饼屋菜单,用ArrayList
餐厅菜单,用数组
public interface Iterator {
  boolean hasNext();
  Object next();
}

2、迭代器模式

提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内不展示

迭代器模式类图

3、设计原则

单一责任——一个类应该只有一个引起变化的原因

4、另一个例子——菜单中包含子菜单

菜单项目具有层次,需要一种结构可以兼容

嵌套的菜单

5、组合模式

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

组合模式类图 组合菜单外部迭代器
上一篇下一篇

猜你喜欢

热点阅读