《Head First 设计模式》之迭代器与组合模式——遍历合并的菜单

迭代器与组合模式(Iterator & Composite

    • 迭代器:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
    • 组合:允许你将对象组成树形结构来表现“整体、部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合。

  • 单一责任原则:一个类应该只有一个引起变化的原因。
    • 遵守这个原则的类容易具有高内聚。当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚。
  • 要点:

    1. 迭代器将遍历聚合的工作封装进一个对象中。
    2. 我们应该努力让一个类只分配一个责任。
    3. 组合结构内的任意对象称为组件,组件可以是组合,也可以是叶节点。
    4. 在实现组合模式时,有许多设计上的折衷。根据需要平衡透明性和安全性。

迭代器模式

  主要是聚合对象创建迭代器,借助单一职责的原则,从而实现客户端可以对聚合的各种对象实现相同的操作,达到代码复用的效果。

 

 

 


组合模式

  • 特点
    • 树形结构表示对象组合
    • 忽略对象组合和对象个体之间的差别,即相同的操作既可以作用于对象组合,也可以作用与对象个体
  • 安全性&透明性

    • 组合模式以单一责任原则换取了透明性
    • 通过让组件接口同时包含叶子节点和非叶子节点的操作,客户可以将叶子节点和非叶子节点一视同仁,客户不知道节点的类别
    • 换取透明性的同时我们同样失去了一些安全性

 

posted @ 2017-02-25 11:50  D-Dong  阅读(611)  评论(0编辑  收藏  举报