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

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

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

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

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

    迭代器模式

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

     


    组合模式

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

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

  • 相关阅读:
    14-6 XShell连接远程服务器
    14-5 XManager工具安装
    14-4 本地私有化部署方案介绍
    14-3 阿里云域名购买及备案流程
    14-2 阿里云ECS服务器购买介绍
    13-7 Docker基本使用总结
    初识Redux-Saga
    React Native填坑之旅 -- FlatList
    React Native填坑之旅 -- 使用react-navigation代替Navigator
    React Native填坑之旅 -- 回归小插曲
  • 原文地址:https://www.cnblogs.com/-1307/p/6441290.html
Copyright © 2011-2022 走看看