zoukankan      html  css  js  c++  java
  • (38)23种设计模式研究之九【迭代器模式和组合模式】

    一、定义

    迭代器可以认为是一个指针,可以遍历容器的指针。迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器物件的内容迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
    二、扩展
    迭代器模式让我们能够游走于聚合内的每一个元素,而又不暴露其内部的表示。


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

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

    1. 概述

      将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

    2. 解决的问题

      当希望忽略单个对象和组合对象的区别,统一使用组合结构中的所有对象(将这种“统一”性封装起来)。

    3. 组合模式中的角色

      3.1 组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。

      3.2 叶子(Leaf):在组合中表示子节点对象,叶子节点不能有子节点。

      3.3 合成部件(Composite):定义有枝节点的行为,用来存储部件,实现在Component接口中的有关操作,如增加(Add)和删除(Remove)。






















  • 相关阅读:
    【leetcode】Reverse Words in a String
    使用windows的远程桌面连接连接Ubuntu
    Ubuntu下快速安装php环境
    面试题之【打印1到最大的N位数】
    gnuplot安装问题(set terminal "unknown")
    java获取文件的md5值
    jQuery全选/反选checkbox
    PowerDesigner反向工程,根据Oracle数据库结构生成ER图(2014-3-25记)
    SVN服务端启动解决方案(2013-12-10 记)
    Oracle数据库DOC命令导入导出(2014-3-10记)
  • 原文地址:https://www.cnblogs.com/wycBlog/p/7452265.html
Copyright © 2011-2022 走看看