経緯
MVCやMVVMで検索してみると、大量に記事がヒットする。そしてややこしい。
自分なりに簡略化してまとめてみました。
MVCと一言で言っても、何種類か存在しており、ややこしい。
参考:サバクラ両方で動く JavaScript の大規模開発を行うために
多少不正確かもしれませんが、いろんな記事を漁ってみてだいたいこういうことでしょ?って感じにまとめてみました
参考:サバクラ両方で動く JavaScript の大規模開発を行うために
多少不正確かもしれませんが、いろんな記事を漁ってみてだいたいこういうことでしょ?って感じにまとめてみました
はじめに(MVCの概要)
MVCとは、設計手法の一つ。
実装を、Model-View-Controllerの三つの領域に分けて行う。
この設計を用いることで、画面変更が容易になったりする。
MVVMは、MVCの亜種のようなもの。
MVCとは
使用目的
ビジネスロジックを、画面表示から独立させるために用いる。
(画面変更の影響を、ビジネスロジックが受けないようにするため)
前提条件
画面表示は頻繁に変更されるが、ビジネスロジックはあまり変更されない。
したがって、画面変更によって、ビジネスロジックを変更しないですむようにしたい。
参考サイト
MVCができた経緯
Model, View, Controllerがどのようにしてできたかがわかりやすかった
記事中盤からの内容がわかりやすかった。『MSDNのMVC記事まとめ』ってところ
MVCの責務
- Model
Viewから独立した処理を担う。 - View
UI、データの表示、装飾、などを担う。
例1、データ入力で、数値入力させるか、セレクトボックスで選ばせるか。
例2、同じデータでも、数値表示するか、グラフ表示するか。
など、どのように人に見せるかを担う。 - Controller
ViewとModelをつなぐ役割。
依存関係
- Model
独立 - View
Modelに依存 - Controller
ViewとModelに依存
MVCを利用するメリット・デメリット
- メリット
Viewを変更しやすい - デメリット
MVCの構造は冗長。コード量が増え、構造が複雑化する。
MVVMとは
概要
ModelをViewから独立させるという目的は、MVCと同じ。
MVVMでは、Controllerは使わず、ViewModelを使う。
ViewModelとは
Viewから画面表示用の装飾を取り外したものが、ViewModelである。
Viewとバインディングされた、「データ」と「関数」。それがViewModel。
ViewModelとControllerの違い
ViewModelは、ViewとViewModelの二つで一組である。
ViewModelはViewと対応した「データ」と「処理(関数)」を持つが、Controllerは必ずしもViewと対応した「データ」や「処理」は持たない。
これがMVVMとMVCの違いである。
なお、ModelとViewの橋渡しを行う点は、ViewModelもControllerと同じである。
参考
MVVMとは何か
参考にしたこの方の解釈と私の解釈は少しずれているけれども
以上です
コメント
MVCとMVVMの違いの記事の中で一番わかりやすかった。助かる