ニュース
» 2019年06月26日 08時00分 公開

テストに強いソフトウェアアーキテクチャはこれだ!:図解で分かるソフトウェアアーキテクチャ 「MVVM」のテスタビリティーと3つの特長

アーキテクチャを選定する上で重要な視点の一つにテスタビリティ―がある。「MVVM」はMVCやMVPとどこが違い、何に優れているのか。図を交えて解説する。

[石黒 邦宏,デジタルハーツ]

 ソフトウェア開発においてさまざまな新しいアーキテクチャが提案されている中で、アプリ開発においてテストに強いアーキテクチャを紹介する本連載ですが、第3回の本稿では「MVVM」アーキテクチャについて解説いたします。

著者紹介:石黒 邦宏

デジタル・マジック・ラボでインターネット経路制御運用に関わり、オープンソースウェアで経路制御を実現する「GNU Zebra」を開発。1999年IP Infusionを共同設立し、CTOに就任。2009年Access CTO、2015年アプリックス CTOを経て、2018年デジタルハーツホールディングスCTOに就任。

「MVVM」の特長と仕組み

 「MVVM」(Model/View/ViewModel)とは、「MVC」や「MVP」に連なるアーキテクチャの一つで、2005年にマイクロソフトのジョン・ゴスマン氏が提案したものです。当時、マイクロソフトの「WPF」(Windows Presentation Foundation)や「Microsoft Silverlight」といったリッチコンテンツを表現するためのプラットフォームが登場したことで、Webベースとフラッシュベースの両プラットフォームに対応できるアーキテクチャが必要となりました。そこで、登場したのがMVVMです。

MVVMのイメージ MVVMのイメージ

 MVVMの最大の特長は「View」の独立性にあります。MVCやMVPといったアーキテクチャもViewの独立性はありますが、「Controller」や「Presenter」への影響はゼロではありませんでした。なぜならば、MVCやMVPにはViewとController/Presenterとの間にViewのインタフェースが存在し、Viewに対して大きな変更が加わったとき、ControllerやPresenterもその影響を受けてしまうからです。

 一方、MVVMにはViewのインタフェースは存在せず、代わりに「Data Binding」(データバインディング)という仕組みがあります。Data Bindingが橋渡し役となり、ViewとViewModel双方のステータスを自動的に変更します。例えば、Viewのステータスに変更が加わると自動的にViewModelのステータスがアップデートされ、ViewModelのステータスに変更が加わると同じく自動的にViewに反映されます。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

ホワイトペーパーや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。