Mediator パターン再履修(8) ~Cocoa 風作法(2)~
2010/05/18 20:18 - AS3.0
前回は、 Cocoa 風のコーディング手法を発見し、今まで組んできた Mediator パターンに方向修正が発生した、という話でした。
で、再掲ですが、実装としての変更点は以下のとおりでしょう。
- Colleague としては、自分が呼び出す Mediator のメソッドへの参照を、パブリックな変数として追加する
- Mediator としては、自分の内部で Colleague を生成したときに、Colleague に呼び出してもらいたい notify 相当メソッドを割り当てる
以下は、各クラスの変更のうち、それに部分だけを掲示したものです。
IColleague
セッター notify を新たに付け加えます。
Colleague
各 Colleague のうち、ImageProcesser の変更について見てみます。
まず1点目はIColleague の変更に伴い、パブリックプロパティとして notify を追加します。
もう1点は、update メソッドの一番最後の命令 _notify()。 今までは _mediator.notify(this); でした。
Mediator
setup
このメソッドの変更点は3ブロック目の部分。
各 Colleague の notify 変数(実際はセッター)へ、Mediator がそれぞれ実行してもらいたいメソッドをセットします。
各 notify
で、Cocoa 前はパブリップなメソッド notify 一つに設定していたロジックを、プライベートな複数の notify 相当関数に分割します。
完成形プログラムは例によって wonderfl に投稿しました。 前回の Mediator パターンによるプログラム構築例(1) への fork になってますので、DIFF はそちらでご覧いただくと一発です。
あと、手を入れるところは…… と考えると、FileRererence を司るクラスを Strategy パターンで記述すると、さらに Mediator と FileRefUnit の結びつきを弱められそうかなぁ、ってな感じ。
それと Model について今一度考える必要がありそうな気がしないでもない。
シリーズ
- Mediator パターン再履修(7) ~Cocoa 風作法(1)~
- Mediator パターン再履修(6) ~組んでみての雑感~
- Mediator パターン再履修(5) ~Mediator~
- Mediator パターン再履修(4) ~Colleague~
- Mediator パターン再履修(3)
- Mediator パターン再履修(2)
- Mediator パターン再履修(1)