はじめに
この記事では、MVVMモデルについて簡単にまとめました。
⚠️当方初学のため認識違いがある可能性大です
誤りを見つけた際はコメントにて指摘していただけると幸いです🙇♀️🙇♂️
参考
この記事は、以下の情報を参考にして執筆しました。
MVVMモデルとは
(https://www.keyman.or.jp/kn/articles/1906/26/news033.html から引用)
※直線は直接的なAssociationを表し、破線は(例えば)Observer パターンを経た間接的なAssociationを表す
View : UIを表示するロジックのみをもつ
ViewModel : UIに表示するためのデータを管理
Model : 上記2つ意外の処理
DataBinding : アクションを監視し、変更があれば反映する
Presentation and Presentation Logic : Viewの表示と、Viewに関する処理
Businesslogic andData : ビジネスロジックと固有のデータの管理
UIを持つソフトウェアに適用されるソフトアーキテクチャの一種。
MVCパターンの派生。
Model、View、ViewModelのそれぞれに役割が分かれている。
依存関係としてはView → ViewModel → Modelという形でその逆はない。
MVVMの利点
・責務の分離がしやすい
・スケーラビリティ(拡張しやすい)
・テストがしやすい(UIロジックとビジネスロジック が分離されているため)
・AACというライブラリと親和性が高い
Model
固有のデータとそのビジネスロジックなどを扱う。
Viewの描画処理について何も知らないし関わらないが、Viewの見た目、装飾についての情報は保持している。
View
アプリケーションの扱うデータをユーザへ見せるため表示し、ユーザからの入力を受け取る。(ユーザインターフェイス)
Viewは渡された値に基づいて描画を行う。
よって、状態は保持しない。
ViewModel
Viewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換しModelに伝達する。
ViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする。