表示時部分 View とアプリのコアな部分やデータを扱う部分である Model の中間層です。
ただ、それだけだと MVC の Control や MVP の Presenter など他の UI アーキテクチャーにも同様な部分があります。
MVVM の ViewModel の特徴は 画面(View)を抽象化(モデル化) しているところです。
例えば、 テキスト入力の項目を一つ持つ画面(Foo) があったとします。その画面に対応する FooViewModel クラスを作ります。
lang
1public class FooViewModel
2{
3 private string _text;
4}
長くなるのでやり方は書きませんが、 双方向バインディング という方法によって、テキスト入力エリアと _text の変数を関連付けます。
_test の変数を変更するとテキスト入力エリアの値も変わりますし、テキスト入力エリアの値が _text に格納されます。
この画面を抽象化した ViewModel を用意することによって、画面の処理(プレゼンテーションロジック)を書きやすくなり、テストもやりやすくなります。
2014/10/08 04:21