
608
14
章
Mediator
パターン
Mediator
パターン
関連するオブジェクト間の複雑なやり取りと制御を集中化するために、
Mediatorパターンを使いましょう。
Calendar
シナリオ
ボブは
HouseOfTheFuture
社の優秀な人々のおかげで、自動化された住宅を所有していま
す。電気製品はすべて、生活を快適にするように設計されています。スヌーズボタンを押し
て目覚ましを止めると、目覚まし時計はコーヒーメーカーにコーヒーを淹れるように指示し
ます。そんな快適な生活を送るボブですが、彼も他の顧客もいつも新機能を求めています。
例えば、週末にはコーヒーはいらない、シャワーを浴びる時間の
15
分前にスプリンクラーを
止めてほしい、ごみ出しの日には目覚ましのアラームを早めに鳴らしてほしい、などです。
Sprinkler
CoffeePot
Alarm
HouseOfTheFuture
社のジレンマ
どのオブジェクトがどの規則に従っているのか、またさまざまなオブジェクトが互
いにどのように関連しているのかを管理するのがとても困難になってきています。
Alarm
onEvent() {
checkCalendar()
checkSprinkler()
startCoffee()
//
さらに多くの仕事
}
Calendar
onEvent() {
checkDayOfWeek()
doSprinkler()
doCoffee()
doAlarm()
//
さらに多くの仕事
}
CoffeePot
onEvent() { ...