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

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

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

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

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

    迭代器模式

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

     


    组合模式

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

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

  • 相关阅读:
    iOS 获取系统通知开关状态[隐式推送]
    iOS collectionView自适应高度estimatedItemSize
    iOS 审核被拒:2.1 App Tracking Transparency permission request
    大小端
    注解@Mapper(componentModel = "spring")自动生成DTODO的模型映射
    Nexus3_windows部署及Nuget上传
    Winform_打包_CEF
    Nexus3_windows部署及NPM上传
    生成url的二维码图片
    微信小程序实现图片是上传、预览功能
  • 原文地址:https://www.cnblogs.com/-1307/p/6441290.html
Copyright © 2011-2022 走看看