Model-View-ViewModel
大きなアプリケーションのためのアーキテクチャで、単純なアプリケーションでは実装コストがオーバーキル
大きなアプリケーションでも、データバインディングがメモリ効率に影響を与える可能性
View と ViewModel が疎結合になるため、View がなくても ViewModel をテストしやすい
目的
WPF においては、次の 2 点
UI の実装とロジックの実装を分離して作業分担できるように (求められる専門性が異なる)
責務の分離により変更時に影響範囲を小さく