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

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

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

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

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

    迭代器模式

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

     


    组合模式

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

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

  • 相关阅读:
    父容器直接清除浮动的css
    [原创 js]指定DOM中添加字符串函数
    跨浏览器的透明度解决方案(包括IE8 Beta 2)
    [原创 js]验证表单强度的js
    帧率、码流与分辩率之间关系
    隔行扫描和逐行扫描(interlace and progressive )
    VGA管脚定义
    红眼消除
    HDMI_VGA_CBVS同时显示
    分辨率与行场同步信号的关系
  • 原文地址:https://www.cnblogs.com/-1307/p/6441290.html
Copyright © 2011-2022 走看看