一、引言 今天我们开始讲“行为型”设计模式的第三个模式,该模式是【迭代器模式】,英文名称是:Iterator Pattern。还是老套路,先从名字上来看看。“迭代器模式”我第一次看到这个名称,我的理解是,迭代是遍历的意思,迭代器可以理解为是遍历某某的工具,遍历什么呢?在软件设计中,当然遍历 ...
一 引言 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合。在一章中,将介绍一下迭代器模式。下面废话不多说了,直接进入本博文的主题。 二 迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的话,集合对象就承 ...
2014-09-09 23:57 6 11210 推荐指数:
一、引言 今天我们开始讲“行为型”设计模式的第三个模式,该模式是【迭代器模式】,英文名称是:Iterator Pattern。还是老套路,先从名字上来看看。“迭代器模式”我第一次看到这个名称,我的理解是,迭代是遍历的意思,迭代器可以理解为是遍历某某的工具,遍历什么呢?在软件设计中,当然遍历 ...
本文的概念来自深入浅出设计模式一书 项目需求 有两个饭店合并了, 它们各自有自己的菜单. 饭店合并之后要保留这两份菜单. 这两个菜单是这样的: 菜单项MenuItem的代码是这样的: 最初我们是这样设计的, 这是第一份菜单: 这是第2份菜单: 同时有两个菜单存在的问题 ...
迭代器模式把对象的职责分离,职责分离可以最大限度减少彼此之间的耦合程度,从而建立一个松耦合的对象。职责分离的要点是对被分离的职责进行封装,并以抽象的方式建立彼此之间的关系。 1、迭代器模式简介 1.1>、定义 迭代器模式提供一种方法可以顺序访问聚合对象中各个元素,但又不暴露 ...
迭代器模式有叫做游标(Cursor)模式。GOF给出的定义:提供一种方法访问一个容器(container)对象中的各个元素,而又不暴露该对象的内部细节。 迭代器模式由以下角色组成: 迭代器角色(Iterator): 负责定义访问和遍历元素的接口。 具体迭代器角色(Concrete ...
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Iterator 模式结构样式代码。 实现方式(二):实现 IEnumerable 中序遍历二叉树。 实现方式(三):实现 ...
上周六就開始写这篇博客,之后一直耽误了。到前天才開始写。今天醒的早,就把这部分整理一下。 本文内容參考易学设计模式和马士兵的迭代器模式的视频。 了解迭代器模式一个作用就是让你在使用 迭代器遍历集合类的时候 认为更自然。' 一 、迭代器模式简单介绍 【定义 ...
将链表的创建和遍历都放在一类中,就是为了方便,直到那天看了迭代器设计模式,让我有了一次回过头来重新审视自己 ...