
you are here
363
9
章
Iterator
パターンと
Composite
パターン
getName()
getDescription()
getPrice()
isVegetarian()
print()
add(MenuComponent)
remove(MenuComponent)
getChild(int)
MenuComponent
getName()
getDescription()
getPrice()
isVegetarian()
print()
MenuItem
Waitress
getName()
getDescription()
print()
add(MenuComponent)
remove(MenuComponent)
getChild(int)
Menu
menuComponents
Composite
を使ってメニューを設計する
それでは、どのように
Composite
パターンをメニューに適用するのでしょうか?
まず、コンポー
ネントインタフェースを作成する必要があります。このインタフェースはメニューとメニュー項目の
両方にとっての共通インタフェースとして機能し、すべてを統一的に扱うことができます。つまり、
メニューやメニュー項目で同じメソッドを呼び出せるのです。
メニュー項目やメニューに対して呼び出しても意味がないメソッドもありますが、この問題につ
いてはこの後対応します。ここでは、メニューを
Composite
パターン構造に適合させたかを確認しま
しょう。
MenuComponent
は、
MenuItem ...