MVVM 【Model-View-ViewModel】
概要
MVVM(Model-View-ViewModel)とは、利用者に対する表示・操作の機能(ユーザーインターフェース)が存在するソフトウェアの構造を階層的に整理したモデルの一つで、全体を「Model」(モデル)-「View」(ビュー)-「ViewModel」(ビューモデル)の3層に分割にしたもの。Modelはデータの管理や保存、外部との入出力、内部的な処理を担い、Viewは利用者に対する画面表示や入力・操作の受け付けを担当する。両者の間を仲介して互いの状態変更を通知、反映させる役割をViewModelが担う。
データバインディングのようにViewの変更とModelの変更が常に一対一に対応する単純なアプリケーションならば2層で実装できるが、実際のソフトウェアではViewの変更、Modelの変更が必ずしも直ちに相手方への変更を伴うとは限らない。ViewModelは両者の変更を監視し、相手方への反映が必要な場合に通知を行う。
MVVMは「MVC」(Model-View-Controller)モデルから派生した設計で、現代ではアプリケーションの機能としての意義が薄れたControllerをViewに吸収し、Viewの状態管理をView自身からViewModelに移したものと考えられる。
2005年に米マイクロソフト(Microsoft)社が発表し、.NET Framework向けのアプリケーション開発に導入された。WPF(Windows Presentation Foundation)やSilverlightを利用した開発で用いられてきたが、現在では他のプラットフォームでもMVVMの考え方に基づく機能階層の整理が行われる場合がある。
(2021.8.27更新)