MVC・MVVMにおけるViewModelの立ち位置の違い
直近、過去に引き継いだ ASP.NET MVC をいちから学習しています。
今回は、長らく疑問だった ViewModel の立ち位置の違いがおおよそ見えてきたので、それについて述べたいと思います。
イントロダクション
私は、 MVVM をある程度まで覚えてから、 MVC*1 の現場に入ったのですが、 ViewModel の立ち位置が違っており、長らく疑問に思っていました。
MVC と MVVM が何を指すかについては、以下の表を参照ください。尚、詳細につきましては、本筋から逸れてしまうので割愛します。
略称 | 正式名称 |
---|---|
MVC | Model-View-Controller |
MVVM | Model-View-ViewModel |
疑問点
疑問点は次の違いについてです。
- MVC では、 VIewModel は Model に属している
- MVVM では、( Model に属するのではなく) ViewModel に属している
結論
MVC では、 ViewModel は Model に属すると結論付けます。
ただし、ViewModel の役割は MVC・MVVM 共に変わりません。 View は ViewModel を介して(他の) Model と連携します。
*1:厳密には ASP.NET MVC を指します。