表1.1 类,接口一览表
名称 |
说明 |
Aggregate |
表示已聚合的接口 |
Iterator |
执行递增,遍历的接口 |
Book |
表示书籍的类 |
BookShelf |
表示书架的类 |
BookShelfIterator |
扫描书架的类 |
Main |
测试用类 |
这个程序是把书籍(Book)放到书架(BookShelf)上,并依次输出书名。
Aggregate接口(Aggregate.java)<o:p></o:p>
- public interface Aggregate {
- public abstract Iterator iterator();
- }
Iterator 接口(Iterator.java)<o:p></o:p>
- public interface Iterator {
- public abstract boolean hasNext();
- public abstract Object next();
- }
Book类(Book.java) <o:p></o:p>
- public class Book
- {
- private String name = "";
- public Book(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- }
BookShelf类(BookShelf.java)<o:p></o:p>
- public class BookShelf implements Aggregate {
- private Book[] books;
- private int last = 0;
- public BookShelf(int maxsize) {
- this.books = new Book[maxsize];
- }
- public Book getBookAt(int index) {
- return books[index];
- }
- public void appendBook(Book book) {
- this.books[last] = book ;
- last++;
- }
- public int getLength() {
- return new BookShelfIterator(this);
- }
- }
-
BookShelfIterator类
- public class BookShelfIterator implaments Iterator {
- private BookShelf bookShelf;
- private int index;
- public BookShelfIterator (BookShelf boofShelf) {
- this.bookShelf = bookShelf;
- this.index = 0;
- }
- public boolean hasNext () {
- if(index < bookShelf.getLength()) {
- return true;
- }else {
- return false;
- }
- }
- public Object next () {
- Book book = bookShelf.getBookAt(index);
- index++;
- return book;
- }
- }
Main.java 测试类
- public class main{
- public static void main(String[] args) {
- BookShelf bookShelf = new BookShelf(2);
- bookShelf.appendBook(new Book("Around the World in 80 days"));
- bookShelf.appendBook(new Book("Bible"));
- Iterator it = bookShelf.iterator();
- while(it.hasNext()) {
- Book book = (Book)it.next();
- System.out.println(""+book.getName());
- }
- }
- }
分享到:
- 2007-01-16 09:56
- 浏览 2206
- 评论(1)
- 论坛回复 / 浏览 (1 / 3436)
- 查看更多
相关推荐
迭代器(Iterator) 用意:可以顺序地访问一个集合中的元素而不必暴露集合中的内部表象。
设计模式C++学习之迭代器模式(Iterator)
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
【Java设计模式】(1)迭代器模式Iterator(代码)
迭代器模式(Iterator Pattern)是设计模式中的一种行为模式,它允许顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式提供了一种方法,可以顺序地访问一个聚合对象中的各个元素,而又...
C++设计模式课件21_Iterator_迭代器.pdf
本文实例讲述了PHP设计模式之迭代器(Iterator)模式。分享给大家供大家参考,具体如下: 迭代器有时又称光标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如list或vector)上遍访的接口,设计...
2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain 从以上可以看出,设计模式到处用到面向对象中的多态。接口调用子类中的...
主要为大家详细介绍了C++设计模式之迭代器模式Iterator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 迭代器模式 java demo
主要介绍了PHP设计模式之迭代器模式Iterator,结合实例形式分析了PHP迭代器模式Iterator相关概念、原理、实现方法与操作注意事项,需要的朋友可以参考下
Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现
iterator-demo 迭代器设计模式demo
博文“设计模式之--迭代器模式”附属源码,以供参考。
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不... 这是第18节:行为型模式Iterator迭代器模式
本文实例讲述了Python设计模式之迭代器模式原理与用法。分享给大家供大家参考,具体如下: 迭代器模式(Iterator Pattern):提供方法顺序访问一个聚合对象中各元素,而又不暴露该对象的内部表示. 下面是一个迭代器模式...