😊

MVVMを理解するために

2024/08/20に公開

MVVMはUIを持つソフトウェアをどう構成するかの設計方法です。

MVVMの目的

MVVMには2つの目的があります。

目的1.UI分離(PDS)

UI関連(プレゼンテーション)のコード・データ

UI以外(ドメイン)のコード・データ

を分離します。

目的2.UI表示入力とUIロジック・データ分離

UI表示入力

UIロジック・データ

を分離します。

MVVMの構成方法

ソフトウェア全体Sを目的1で分離します。
プレゼンテーション部分をP、ドメイン部分をDとします。

S = P + D

DをModelと命名します。

ソフトウェアはPとModelに分離されます。

S = P + Model

Pを目的2で分離します。
表示入力部をView
プレゼンテーションロジック・データをViewModelとします。

P = View + ViewModel

よって、ソフトウェア全体は以下のように分離されます。

S = VIew + ViewModel + Model

View: 表示入力
ViewModel: プレゼンテーションロジック・データ
Model: ドメインロジック・データ

依存方向
View -> ViewModel -> Model

ViewModelはViewを知らない。
ModelはViewModelを知らない。

上記のように分離したので

ViewにはUIロジック・データはありません。
ViewModelにはドメインロジック・データはありません。
ModelにはUIロジック・データはありません。

ModelはUIから独立します。これがMVVMです。

Discussion