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.350)
コード(BBEdit, Emacs)
AlternatingDinerMenuIterator.java
import java.util.Iterator;
import java.util.Calendar;
public class AlternatingDinerMenuIterator implements Iterator {
MenuItem[] items;
int position;
public AlternatingDinerMenuIterator(MenuItem[] items)
{
this.items = items;
Calendar rightNow = Calendar.getInstance();
position = rightNow.get(Calendar.DAY_OF_WEEK) % 2;
}
public Object next() {
MenuItem menuItem = items[position];
position += 2;
return menuItem;
}
public boolean hasNext() {
if (position >= items.length || items[position] == null) {
return false;
} else {
return true;
}
}
public void remove() {
throw new UnsupportedOperationException
("交換対応食堂メニュイテレーターはremove()をサポートしていません");
}
}
入出力結果(Terminal)
$ javac AlternatingDinerMenuIterator.java $
0 コメント:
コメントを投稿