2011-12-21 12 views
0

私はJose Smithのビデオを見て、MVVMについてのチュートリアルを読んでいましたが、MVVMがどのように疎結合であるか、つまりViewとViewModelについては分かりません。 MVVMでは、View、Model、Presenterはすべてインタフェースを持っているため、単体テストの代わりに使うことも模擬することもできます。MVVMルーズカップリングはMVPとどのように比較されますか?

MVVMでは、ViewまたはViewModelでインタフェースを使用している人は表示されません。 私の理解から、ViewModelはModelからデータを抽象化し、Viewとしてプロパティとして公開し、モデルでビジネスロジックとデータ操作を行います。

.SaveData()メソッドとViewで使用されるいくつかのプロパティを持つViewModelを持っている場合、他のViewModelにインタフェースを持たない場合、どのように置き換えるのですか?

MVVMルーズカップリングはどのように説明できますか?

答えて

1

MVVMは、インターフェイスに関しても実装されているはずです。 MyViewModelクラスをお持ちの場合は、IMyViewModelも実装されていますので、テスト用にモックすることができます。同じことがビューにも当てはまります。したがって、この特定の意味では、MVVMはMVPと異ならない。

「ルーズカップリング」の定義は、まあまあです。明確にしたい他のものがある場合は、もっと具体的にする必要があります。

注:MVVMでは、裸のSaveDataメソッドの代わりにSaveDataCommandプロパティを持つことは慣用的です(ただし、コマンドはとにかくメソッドとして実装されます)。

+0

私は見ていますが、ページ内のビューをxamlのインターフェイスタイプとして追加する方法はありますか?ほとんどの人は、ViewとViewModelをプログラムで追加するだけでしょうか?ビューを追加して、コンストラクタのViewModelにリンクします。 –

+0

@ KingChan:はい、ほとんどの場合、プログラムで(そして依存関係はDIコンテナを介して各オブジェクトに注入されます)実行されます。 – Jon

+0

ありがとうございました! :) –

関連する問題