投稿者 YuO  (社会人) 投稿日時 2012/5/14 02:00:27
業務アプリとゲームでは,適切な方法が異なってきますが……。

業務アプリを前提に書きますが,そもそもViewはModelに依存します。
なぜなら,「そのプログラムがやりたいこと」はMに記述されているからです。
これは,MVC系のパターン (MVC/MVP/PM/MVVM etc.) 全てで共通です。
言い換えれば,MのインターフェースをV (またはC/P/VM) が知っていないといけないのです。

今回の場合,PMパターンを例にするとMとV+Pを分離して,MとV+Pを依存しないように,としたいようですが,それは無理な話です。
V+PはMに依存します。再度になりますが,「やりたいこと」がMにあるのですから。
MVC系のパターンにおいても,MをいかにしてVから独立させるか,が主題であって,MとVを相互に独立させることは主題になっていません。
# 「できないこと」がわかっているから。

純粋なVの開発であれば,ある程度Mから分離可能です。
非ドメインロジックの処理も,Mからある程度分離してP側に記述可能だと思います。
WPFなどはそういう思想になっていますね。


とりあえず,MVCやMVVMなどのパターンのとっかかりになりそうなサイトをいくつか挙げておきます。
・MVCモデルの問題点を解決するPMモデルとMVPモデル - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20110823/p1
Javaのサイトですが,図と文字だけでもよいかと。
あと,リンクの起点にもなります (GeekなNooblogさんの一連の記事は読んでみた方がよいかと)。
・MVVMパターンとイベント駆動開発、そしてMVC/MVP/PMパターンとの関係 – 何故MVVMなのか - the sea of fertility
http://ugaya40.net/wpf/mvvm-mvc-mvp-pm-eventdriven.html
Livetの開発で知られる尾上さんのサイトなので,MVVMパターン中心ですが,スライドの,特に各パターンの説明は分かり易いと思います。