网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VB.net > 正文
Design Patterns:Iterator Pattern--VB代码
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

author: sekihin


结构图

角色

  • 迭代器(Iterator)角色:负责定义和遍历元素的接口。
  • 具体迭代器(Concrete Iterator)角色:实现迭代器接口,并要记录遍历中的当前位置。  
  • 容器(Container)角色:容器角色负责提供创建具体迭代器角色的接口。
  • 具体容器(Concrete Container)角色:具体容器角色实现创建具体迭代器角色的接口——这个具体迭代器角色于该容器的结构相关。

动机

  在软件构建过程中集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部程序代码透明的访问其中包含的元素;  同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作” 提供了可能。
    使用面向对象技术将这种遍历机制抽象抽象为“迭代器”为“应对变化中的集合对象”提供了一种优雅的方式。

意图

  
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

示意性代码

示意性代码
Module MainApp

    Sub Main()
        Dim a As New ConcreteAggregate
        a(0) = "Item A"
        a(1) = "Item B"
        a(2) = "Item C"
        a(3) = "Item D"

        ''Create Iterator and provide aggregate
        Dim i As New ConcreteIterator(a)

        Console.WriteLine("Iterating over collection -----")

        Dim item As Object = i.First()
        While item IsNot Nothing
            Console.WriteLine(item)
            item = i.Next()
        End While

        ''Wait for user 
        Console.Read()
    End Sub

End Module

''"Aggregate" 
Public MustInherit Class Aggregate
    Public MustOverride Function CreateIterator() As Iterator
End Class

''"ConcreteAggregate"
Public Class ConcreteAggregate
    Inherits Aggregate
    Private items As New ArrayList

    Public Overrides Function CreateIterator() As Iterator
        Return New ConcreteIterator(Me)
    End Function

    ''Property 
    Public ReadOnly Property Count() As Integer
  
  • 上一篇资讯: 用VB.Net编织未来
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号