0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MVVMについて

Last updated at Posted at 2023-08-03

 MVVMはソフトウェアを分割管理する方法です。

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

・UI分離(プレゼンテーションとドメインの分離)

 UIに関係ある部分
 UIに関係ない部分

 を分離する

・表示と表示データロジックの分離(Viewと状態の分離)

 UI表示は表示だけを担当
 表示するデータとロジックはUIデータロジック
 
 として分離する。

考え方1

ソフトウェアを

UI と UI以外 に分離する。

UI を UI表示 と UIデータロジック に分離する。

UI表示を View
UIデータロジックを ViewModel
UI以外を Model

と呼びます。

上記の方針で分離したので、

Viewにはデータロジックはない。
ViewModelにUIのためのデータロジックはある。
ModelにはUIの関心事は存在しない。

考え方2

ソフトウェアをUI表示とビジネスロジックに分ける。

ビジネスロジックをUIロジックとドメインロジックにわける。

ソフトウェア = UI表示 + UIロジック + ドメインロジック

UI表示:View
UIロジック:ViewModel
ドメインロジック: Model

Viewにはデータとロジックはない。
ViewModelに表示データとUIロジックはある。
ModelにはUIロジックはない。

依存方向

ViewはViewModelとやり取りを行い。
ViewModelはModelとやり取りを行い。
ViewとModelは直接やり取りを行わない。

View -> ViewModel -> Model 

の方向に依存する。逆の依存はない。

ViewはViewModelにアクセス可能
ViewModelからViewはアクセスできない。

ViewModelはModelにアクセス可能
ModelからViewModelにはアクセスできない。

データバインディングについて

Viewの表示データをViewModelに保持して
Viewはデータバインディングを使用して表示を行う。
データバインディングはMVVM外のフレームワークが実行している。
(WPFの場合はWPFフレームワーク)

データバインディングはMVVMの本質ではない。実装の一手段にすぎない。
データバインディングの代わりにRxを使用する実装もある。

   
 

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?