Mediator パターン再履修(7) ~Cocoa 風作法(1)~
2010/05/17 21:12 - AS3.0
Mediator パターンでプログラムを組んでみて、こんな感じになるのかなぁ、と思っていたら、新たな情報を見つけてしまった! というのが前回までのあらすじ。
その情報はこちらに書かれていました。
それによると iPhone アプリのプログラミングには以下のような作法があるとのこと(以下「Cocoa 作法」と呼ぶ)。
前回組んだ Mediator パターンでは、Colleague からのイベント呼び出し処理は Mediator.notify を呼び出すように固定していました。
Mediator.notify は引数として Colleague を取るようにしてあり、各 Colleague は Mediator.notify を呼び出すときに自分自身を引数とします。
Mediator では notify を呼び出されたとき、引数の Colleague によって処理を分岐する。
以上が Colleague から Mediator への情報の流れとそのときのプログラムの動作でした。
しかし Cocoa 作法で行くならば、Mediator.notify という一つのメソッドにロジックを封じ込めるのではなく、各 Colleague に応じた notify 相当のメソッドを個別に設定できるということですね。
ということは Mediator パターンの欠点である、notify の複雑化・肥大化を回避することが可能になるのか!
実装としての変更点は以下のような感じでしょうか。
- Colleague としては、自分が呼び出す Mediator のメソッドへの参照を、パブリックな変数として追加する
- Mediator としては、自分の内部で Colleague を生成したときに、Colleague に呼び出してもらいたい notify 相当メソッドを割り当てる
続く。
シリーズ
- Mediator パターン再履修(8) ~Cocoa 風作法(2)~
- Mediator パターン再履修(6) ~組んでみての雑感~
- Mediator パターン再履修(5) ~Mediator~
- Mediator パターン再履修(4) ~Colleague~
- Mediator パターン再履修(3)
- Mediator パターン再履修(2)
- Mediator パターン再履修(1)