本帖最后由 程金 于 2012-9-18 17:16 编辑
你要了解接口的作用,接口就是让你直接使用而不必了解具体的实现,其次就是一套标准,所有实现了这个接口的类都提供了相同的方法,所以实现了iterator的集合对象都提供了一个iterator类,用来迭代集合对象,
在Vector中,addElement()读取对象,在list中get()读取对象等,不能通用,你编写的客户程序的迭代器因此不同,
避免具体迭代器更换给客户程序带来的修改,迭代器模式抽象了具体迭代器 角色,使得客户程序更具一般性和重用性。这被称为多态迭代。 举例由于迭代器模式本身的规定比较松散,所以具体实现也就五花八门。
在使用集合的时候,需要事先知道集合的准确类型,否则无法使用。乍看来,这一点似乎没什么关系。但假若最开始使用Vector,后来在程序中又决定(考虑执行效率的原因)改变成一个List,可利用Iterator的概念达到这个目的。它可以是一个对象,作用是遍历一系列对象,并选择那个序列中的每个对象,同时不让客户程序员知道或关注那个序列的基础结构。 |