zoukankan      html  css  js  c++  java
  • 【HeadFirst设计模式】9.迭代器与组合模式

    迭代器:

      定义: 

        提供一种方法,顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。(不让你知道我内部是如何聚合的)

      把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。

      

    组合模式:

      定义:

        允许你将元旦组合成树形结构来表现“整体、部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

    设计原则:

      一个类应该只有一个引起变化的原因

      

    OO原则:

      封装变化

      多用组合,少用继承

      针对接口编程,不针对实现编程

      为交互对象之前的松耦合设计而努力

      类应该对扩展开放,对修改关闭

      依赖抽象,不要依赖具体类

      只和朋友交谈

      别找我,我会找你

      类应该只有一个改变的理由

    要点:

      迭代器允许访问聚合的元素,而不需要暴露它的内部结构。

      迭代器将遍历聚合的工作封装进一个对象中。

      当使用迭代器时,我们依赖聚合提供遍历。

      迭代器提供了一个通用的接口,让我们遍历聚合的项,当我们编码使用聚合的项时,就可以使用多态机制。

      我们应该努力让一个类只分配一个责任。

      组合模式提供一个结构,可同时包含个别对象和组合对象。

      组合模式允许客户对个别对象和组合对象一视同仁。

      组合结构内的任意对象称为组件,组件可以是组合,也可以是叶节点。

      在实现组合模式时,有许多设计上的折衷。你要根据需要平衡透明性和安全性。

  • 相关阅读:
    两个简单的画验证码图形程序
    Cisco路由技术基础知识详解
    网络管理中的常用命令
    网络管理中的常用命令
    基于SNMP的MIB库访问实现
    SNMP编程基础
    SNMP编程基础
    Cisco路由技术基础知识详解
    两个简单的画验证码图形程序
    模版方法
  • 原文地址:https://www.cnblogs.com/laizhd/p/3632706.html
Copyright © 2011-2022 走看看