MVVMの個人的なメモ

何でいまさらという感じですが、UniversalAppsを作成するためにはMVVMの考えを把握しておかないとコードの共有などで問題が出そうなのと、正直自分ではまだやり切れていない、理解し切れていないので、整理、勉強がてらメモしていくことにしました。

MVVMはModel-View-ViewModel(M-V-VM)の略で、MVC(Model-View-Control)では表現しきれない環境、WindowsストアアプリやWPF等で「XAML」が導入されてControlは?という部分もありMVCから派生して作られたソフトアーキテクチャパターン

で、言葉としてはM-V-VMとなっているものの、本来の並びはV-VM-M(View-ViewModel-Model)で構築されます。
また、Viewに関しては「見られている」ではなく「見ている」場所という説明を見たことがあり、此れはすっと入ってきました。
出来上がったものは見られているものでも、中からすれば「結果が出る場所を見ているもの」だと考えます。

XAML-Binding-Codeでつなぐ形で構築する、ただしこれに縛られすぎないで、どうしても必要なことであれば、VやVMにCodeが入り込んだり、MにVに引きずられる場所があることもあるのかなと。

BindingはINotifyPropertyChangedを継承したプロパティクラスを用意しておくと変更通知のやり取りができるので、データをやり取りし、画面変更などもスムーズ。

受け取る側や引き渡す側はObservableCollection、INotifyCollectionChangedなどで実装する。

DataModelはModelの下、ModelでDataをシリアライズしてVMに引き渡す、VMで変更を感知したらModelからDataへ引き渡して整合をとるという形でしょうか?
もちろんVMで定義したものを利用することはできると思いますが、この辺がまだ理解不足でうまくやれていないです。

今後も勉強をしていかないとかなと思います。
ここ可笑しい等のご指摘ありましたら、よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.