Mediator パターン再履修(1)
2010/05/10 20:48 - AS3.0
効率的なプログラミングを求めて、デザインパターンを学び、MVC に辿り着きました。
で、私流のコーディングですが、ドキュメントクラス直下のクラスは Model、View、Controller 各1個ずつ計3個に限定してるんです。
Controller クラス内で minimalComps の何らかのクラスを複数生成する、というような感じで M、V、C 以外の何らかのクラスを生成することはありますが、ドキュメントクラスで生成するクラスはあくまで MVC を各1個ずつ置く、という書き方をしていて、結果、必要とする機能を MVC いずれかに収めようとして、ムリな設計をしてるんじゃないか、という疑念に苛まれています。
要求される機能を MVC のどれに書けばいいのか、ってことでよく悩むんですよねー。
例えば WebCam を使ったプログラムの場合、Camera や Video に関わるコードは MVC のどこに記述するのが分かりやすいのか。
今現在、私は Model に記述し、ユーザーインタラクションがない場合、Controller なしの MV で構築しています。
でもカメラって入力機能になるんですよね? マウスやキーボードと同じく。 だったら Controller 作ってそこに記述するのがイイのかなー。でもカメラから得られるデータってユーザーインタラクションの結果としての入力じゃないよなぁ、だったらやっぱり Model かなぁ。
てゆーかデータベースからデータをやりとりするプログラムの場合、そのデータベースは MVC のどれに該当するの? データベースからデータ引っ張ってきたり、データ更新するクラスって MVC のどれになるの? とか考えれば考えるほど自縄自縛状態。
とりあえず組んでみればイイじゃんって感じで、その時その時でベストと思われる構成でコード組んでるわけですが、もうどんどん頭がこんがらがってきています。
そんな中、2週間ほど前に以下の二つのツイーツを読みました。
ActionScriptにおけるMVCは、教科書通りのMVCではなく、Cocoa的なMVCの方が適しているのではないか、と思う。違いはこのサイトがわかりやすい。 http://bit.ly/9mQemK
Apple のチュートリアルも、View と Modelを結合させないController主体のダイアグラムになっている。 http://bit.ly/9XBLTi
各ツイートのリンク先を読むに、どうやら iPhone アプリでは一般的な MVC ではなく Mediator パターン使用が奨励されているらしい(別に iPhone アプリに限らないけど、今オレ的にアップルと言えば気になるのは iPhone アプリ)。
ActionScriptor ですら盲信的にアップル製品を買うこの世の中、況や一般人においておや。 ActionScript はそう遠くない未来に根絶されるかもしれんよな。 ネットブックが参入の機会を逃したのも Flash のせいって叩かれてるし、MS の動向や Opera の発言とか見るにつけ、ここらで C++ や openFrameworks に移行する準備をしといた方がいいのかしら、と思わないでもない。
ってなわけで、以前デザインパターンの学習をしたときには、あまり注力しなかった Mediator パターンをじっくり見てみることにしました。
で、現段階での印象ですが、Mediator パターンって、すっげー分かりやすいかも、って感じです。
続く。
シリーズ
- Mediator パターン再履修(8) ~Cocoa 風作法(2)~
- Mediator パターン再履修(7) ~Cocoa 風作法(1)~
- Mediator パターン再履修(6) ~組んでみての雑感~
- Mediator パターン再履修(5) ~Mediator~
- Mediator パターン再履修(4) ~Colleague~
- Mediator パターン再履修(3)
- Mediator パターン再履修(2)