zoukankan      html  css  js  c++  java
  • 《Head First 设计模式》之迭代器与组合模式——遍历合并的菜单

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

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

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

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

    迭代器模式

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

     


    组合模式

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

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

  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/-1307/p/6441290.html
Copyright © 2011-2022 走看看