えムナウ Blog

えムナウ の なすがまま

目次

Blog 利用状況

ニュース


follow mnow at http://twitter.com


えムナウのプログラミングのページ

INETAJ

書庫

日記カテゴリ

ギャラリ

2012年6月18日 #

わかりやすい MVPVM を実践するために

私の提唱する MVPVM パターンの目的は View と ViewModel の密結合を減らすことにあります。

サンプルは以下のページの Community Open Day 2012 TwitterSample を参照してください。
http://www.mnow.jp/tabid/220/Default.aspx

実装における注意点は以下の通りです。

MVVMパターンからの変更点

View

1)ViewModelからメッセンジャーの通信を受けてビヘイビアを起動する処理を書かない。
 Commandの処理はPresenterが行うのでViewを直接操作できる。

2)DataTemplate の DataType は利用するが、DataTemplateSelector は利用しない。
 ViewModel の派生クラスを使えば DataTemplateSelector を使わずに DataTemplate の DataType で識別できる。

ViewModel

1)Commandの処理を書かない。
 Commandの処理はPresenterが行う。

2)ViewModel は Command も含め、プロパティを View に提供することが主処理となる。

3)コンストラクタ・終了処理は今までの通り書いていいがイベントは生成しない。

4)View と ViewModel 間で完結する入力検証は行っていい。

5)ソート・絞り込みなど ViewModel 内部で完結するデータ操作は行っていい。

Application

1)初期に起動する Presenter を決め プレゼンテーションロジックを書かない。
 プレゼンテーションロジックは Presenter に含む。

2)初期に起動する Presenter の初期処理と終了処理を行う。

Presenter

1)ViewModel の Command を上書きして Command の処理を行う。

2)描画時には Model のデータを取得して ViewModel に設定する。

3)Command の処理で Model を更新し、ViewModel を更新する。

4)子供の Presenter の初期処理と終了処理を行い、描画を指示する。ダイアログは終了をまつ。

 

注意点は一応以上ですが順次追加するかもしれません。
上記 MVVM からの変更点を見ながらサンプルソースを眺めてみてください。

posted @ 0:17 | Feedback (0)