Model View ViewModel
2012年4月10日 (火) 06:49時点におけるimported>Administratorによる版
Model View ViewModel(MVVM)とは、ユーザーインターフェイス(UI)を構築するためのデザインパターンのひとつである。
勉強中。
MVVMの構造
モデル(Model)
モデルはアプリケーションのデータを格納する部分。 ビジネスドメインの操作とデータからなるオブジェクトで、UIからは独立している。
MVCパターンのモデルと同じもの。
ビューモデル(ViewModel)
ビューモデルは操作とデータに対する純粋な表示を受け持つ。
ここで注意しなければならないのはビューモデルはUI自体ではないという点。たとえばビューモデルはボタンやスタイルなどの視覚的な機能を持たない。あくまでUIを抽象化したものである。さらにビューモデルはビューの参照を持たない。単体テストがよりいっそう捗る。
ビュー(View)
ビューは、ビューモデルから得た情報を表示したり、ビューモデルにコマンドと呼ばれる操作を送ることに特化する。
MVCパターンとの決定的な違いはこのビューであり、MVCではコントローラーがモデルとビューを結び付け、以降はビューとモデルが好き勝手にやっていたが、MVVMではビューが通信できるのはビューモデルだけである。例えるなら、MVCは直球な出会い系サイトで、MVVMは監視人がいて建前上は出会い系サイトではないSNSゲームサイトといったところか。