浏览 3454 次
锁定老帖子 主题:设计模式之迭代器 Iterator
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||
发表时间:2007-01-16
Aggregate接口(Aggregate.java)<o:p></o:p>
Iterator 接口(Iterator.java)<o:p></o:p>
Book类(Book.java) <o:p></o:p>
BookShelf类(BookShelf.java)<o:p></o:p>
BookShelfIterator类
Main.java 测试类
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||
返回顶楼 | |||||||||||||||
发表时间:2007-01-17
在BoolShelf类中,如果书籍数量超过了最先设定的书架大小,就无法把书放上去了。如果利用java.util.Vector 取代数组,就能把程序改成即使已经超过了书架的承受数量,也能继续加书。
BookShelf.java import java.util.Vector; public class BookShelf implements Aggregate { private Vector books; public BookShelf(int initialsize) { this.books = new Vector(initialsize); } public Book getBookAt(int index) { return (Book)books.get(index); } public void appendBook(Book book) { books.add(book); } public int getLength() { return books.size(); } public Iterator iterator() { return new BookShelfIterator(this); } } Main类 import java.util.*; 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")); bookShelf.appendBook(new Book("Hello")); bookShelf.appendBook(new Book("Baby")); Iterator it = bookShelf.iterator(); //while循环没变 while(it.hasNext()) { Book book = (Book)it.next(); System.out.println(""+book.getName()); } } } |
|||||||||||||||
返回顶楼 | |||||||||||||||