MVVMとは、アプリケーション・ソフトウェアを実装するためのデザインパターンの1つ。
初めに、以下の文章は 適当に調査・熟考して、こんな感じだと思われるというのを前提に、記載している為、正しい理解と異なる点もあると思われる。
MVVMの基本
MVVMの各モデルのイメージは、以下の様な感じとかんがえる。
M(Model) : ビジネスロジックの塊 = プログラムのメイン
V(View) : 画面(UI)
VM(VewModel) : ModelとViewの橋渡し
Viewの考え方
MVVMのViewを抑えるポイントは以下の3つ
・Viewの中は、UIに関係したロジックのみ。
・Behavior,trigger,actionによって、アプリケーションをリッチに動かす。
・ViewModelとのやり取りは、データバインディングが実現する。
Behaviorって何
ViewModelとやり取りをしない関数だと思う。画面上でアニメーションっちっくに動くUIとかを指す。
Trigger, Actionはセット
Triggerによって、特定のアクションが実行される。そして、アクションの結果をコールバックによりViewModelのインスタンス内のプロパティを変更する。
簡単なフローチャート
Trigger → Action → 何かすごいこと → Callback → ViewModelインスタンスの値が変化
データバインディングが実現すること
ViewModelの各プロパティの値を参照することが出来る。AngureJSとかわかりやすい。
ViewModeの考え方
よく分かりません!
・各要素ごとにViewModelを存在させても良い。
・コマンドによってViewを操作する。(TriggerとAction?)
・Modelのステートと変更の有無の取得
・Modelのメソッドを実行
要するに、View上で作ったインスタンスをいい感じに使って、Viewを操作しましょうって漢字だと思います。
操作するタイミングはModelのステートで決まり、View上でのTriggerとActionの結果発生するコールバックでModelのメソッドを呼んで実行するということだと思います。
Modelの考え方
・ドメインモデルで作る(トランザクションモデルは避ける)
・変更通知機能を保持する
・Modelの設計が一番大切
ざっくりとだが、MVVMの基本的な考えをまとめてみた。