首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

ruby设计方式-迭代器模式

2012-11-03 
ruby设计模式-迭代器模式迭代器模式的作用是对外提供一组访问内部有序子集的接口方法?外部迭代器:?class A

ruby设计模式-迭代器模式

迭代器模式的作用是对外提供一组访问内部有序子集的接口方法

?

外部迭代器:

?

class ArrayIterator    def initialize array    @array = array    @index = 0  end    def has_next?    @index < @array.length  end    def item    @array[@index]  end    def next_item    value = @array[@index]    @index += 1    value  end  endarray = %w{"john" "julia"}iterator = ArrayIterator.new(array)while iterator.has_next?  p iterator.next_itemend

?

?内部迭代器(使用proc):

?

class ArrayIteratorProc    attr_accessor :array    def initialize array    @array = array  end    def each &block    @array.each do |element|      yield(element)    end  endendarray = %w{"tom" "machel"}it = ArrayIteratorProc.new(array)it.each do |e|  p eend

?

外部迭代器可控性强,可以依据客户端的情况进行子集迭代或者访问,而内部迭代器则在迭代过程中会一口气往下执行到底。

热点排行