Model-View-Controllerとの違い
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/12 00:11 UTC 版)
「Model View ViewModel」の記事における「Model-View-Controllerとの違い」の解説
MVVMはModel-View-Controller(MVC)から派生したアーキテクチャであり、いくつかの違いがある。 まずMVVMのViewはMVCにおけるControllerを包含している。これは現代のGUIプラットフォームがControllerがかつて担っていた仕事の殆どを抽象化しており、thin Controllerをわざわざ区別する必要性が低いからである。当初(MVCが提唱されたのは1979年)のMVCはマウスカーソルがどのView要素上に位置するかController側でハンドリングしていたが、現代のWebブラウザはそれを全て自動で行っている。 またMVVMのViewは宣言的に定義され状態を持たない。MVCにおけるViewは状態を持つViewクラスであり、Modelには含まれないView用の状態(View State。例: UI遷移中を示す属性)を保持していた。MVVMにおいてこの責務はViewModelへと移され、ViewはUIの定義と値のマッピングのみに責務を持っている。 すなわちMVVMは、MVCをModel-Viewと解釈した上でViewを宣言型とし、Modelへの参照とView状態をもつ仲介役としてViewModelを導入している。
※この「Model-View-Controllerとの違い」の解説は、「Model View ViewModel」の解説の一部です。
「Model-View-Controllerとの違い」を含む「Model View ViewModel」の記事については、「Model View ViewModel」の概要を参照ください。
- Model-View-Controllerとの違いのページへのリンク