LoginSignup
6
6

More than 5 years have passed since last update.

【中級】MVVMの考え方

Posted at

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の基本的な考えをまとめてみた。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6