『MVC』 と『MVVM』の違いについて


今回は、Webサービスやアプリ開発をする時に基礎となってくる、設計思想(ソフトウェアアーキテクチャー)または設計モデルといわれる『MVC』と『MVVM』の違いについて比較しながら解説していきます。
※他にも「MVP」「VIPER」などありますが、今回は上記の2つだけにします。

最初に、それぞれの単語の意味と役割をみていきたいと思います。

MVCとは?

  • 設計手法の1つで、実装を [Model] [View] [Controller] の3つに分けて行うこと
  • 3つの頭文字をとって『MVC』という

各役割

「Model」:データの処理を行い、データの変更をViewに通知する役割
「View」:ModelからのデータをUIへ出力する役割
「Controller」:ViewとModelの橋渡し、データをコントロールする役割

MVVMとは?

  • 設計手法の1つで、実装を「Model」「View」「ViewModel」の3つに分けて行うこと
  • 3つの頭文字をとって『MVVM』という

各役割

「Model」:データの加工、取得、保存などが役割
「View」:ViewModelの情報を使用してUIに表示、ViewModelにアクションを送信
「ViewModel」:ModelからのUIに描画するための情報を変換保持する役割

それぞれのメリット・デメリット

MVC

■メリット
・機能毎に分割されているため,分業して作業を進めやすくなる(開発者の得意な所に集中できる)
・それぞれが独立しているので変更・修正があった場合にその影響を受けにくい
 
■デメリット
・仲介役のControllerの負担が大きくなる

MVVM

■メリット
・Viewに素早くデータを反映することができる
 
■デメリット
・動作の流れが見えづらくなる
・MVCと比べ、分業して作業を進めにくい

 

以上、『MVC』 と『MVVM』の違いについてでした。