Head Firstデザインパターン
頭とからだで覚えるデザインパターンの基本
(オライリージャパン)
Eric Freeman (著), Elisabeth Freeman (著)
Kathy Sierra (著) Bert Bates (著)
佐藤 直生 (監訳), 木下 哲也 (翻訳)
有限会社 福龍興業 (翻訳)
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Java (プログラミング言語)
- javac (コンパイラ)
- java (application launcher)
Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本 (Eric Freeman 著、Elisabeth Freeman 著、Kathy Sierra 著、Bert Bates 著、佐藤 直生 監訳、木下 哲也 翻訳、有限会社 福龍興業 翻訳、オライリージャパン)の9章(IteratorパターンとCompositeパターン: 適切に管理されたコレクション)、自分で考えてみよう(p.268)を解いてみる。
その他参考書籍
エクササイズ(p.327)
コード(BBEdit, Emacs)
PancakeHouseMenu.java
import java.util.ArrayList;
public class PancakeHouseMenu implements Menu {
static final int MAX_ITEMS = 6;
ArrayList<MenuItem> menuItems;
public PancakeHouseMenu() {
menuItems = new ArrayList<MenuItem>();
}
public Iterator createIterator() {
return new PancakeHouseIterator(menuItems);
}
}
p>PancakeHouseIterator.java
import java.util.ArrayList;
public class PancakeHouseIterator implements Iterator {
ArrayList<MenuItem> menuItems;
int position = 0;
public PancakeHouseIterator(ArrayList<MenuItem> menuItems) {
this.menuItems = menuItems;
}
public Object next() {
MenuItem menuItem = menuItems.get(position);
position += 1;
return menuItem;
}
public boolean hasNext() {
if (position == menuItems.size()) {
return false;
}
return true;
}
}
入出力結果(Terminal)
$ javac PancakeHouseMenu.java $
0 コメント:
コメントを投稿