【中級】MVVMの考え方
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の基本的な考えをまとめてみた。
Author And Source
この問題について(【中級】MVVMの考え方), 我々は、より多くの情報をここで見つけました https://qiita.com/yoshikiAvu/items/33d1219d193f8b507af0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .