
you are here
355
9
章
Iterator
パターンと
Composite
パターン
public void printMenu() {
Iterator<MenuItem> pancakeIterator = pancakeHouseMenu.createIterator();
Iterator<MenuItem> dinerIterator = dinerMenu.createIterator();
Iterator<MenuItem> cafeIterator = cafeMenu.createIterator();
System.out.println("
メニュー
\n----\n
朝食
");
printMenu(pancakeIterator);
System.out.println("\n
昼食
");
printMenu(dinerIterator);
System.out.println("\n
夕食
");
printMenu(cafeIterator);
}
ウェイトレスの準備は整った?
ウェイトレスはかなり進歩しましたが、以下のように
3
回も
printMenu()
を呼び出しているのが見苦しいのは確かです。
現実的に考えてみましょう。現在は新しいメニューを追加するたびに、
ウェイトレスの実装を確認してコードを追加する必要があります。これは
「開放
/
閉鎖原則に違反する」と言えるのではないですか?
これはウェイトレスのせいではありません。私たちは、メニューの実装を分離し、反復処 ...