2

私は WPF で MVVM を使用していますが、この設計パターンの背後にある概念を理解するのに苦労しています。

アプリケーションの状態である「myclass」オブジェクトがあります(リポジトリからロードされたデータを保存します)。アプリケーションのすべてのページがこのデータを使用し、それらすべての間でオブジェクトを同期する必要があります。

私の最初のアプローチは、シングルトン クラスを使用して、このデータをサービス レイヤーに格納することでした。したがって、すべての ViewModel はこのサービスを呼び出してデータを取得する必要があります。変更もこのサービスを呼び出す必要があり、すべてのビューを同期するためにイベントが発生します。

このデータをモデルレイヤーに保存する方が良いかどうか疑問に思っています.最良の選択肢は何ですか?

編集: 詳細情報の追加: 保存されたデータは、ソリューションに読み込まれたプロジェクトのリストです。ソリューションは 1 つしかないはずなので、シングルトンとして実装しました。must は、任意のプロジェクトを対話的にロード、変更、または削除できます。

4

1 に答える 1

0

私の理解へのサービスは、機能の一部(ファイルシステムへのアクセス、データベースへのアクセス...)を抽象化するものであり、VMその機能が必要なときに使用できる特定のインターフェースを実装すると言うものです。

ただし、モデルに、アプリケーションのビジネス ロジックと、そのビジネス ロジックの実行を支援するすべてのもの (必要に応じてINPCを実装できる/実装できない) が保持されます。

したがって、本質的に、サービスを使用して何かを完了し、それを手放します。モデルはアプリケーションにより深く根付いています

あなたの特定のユースケースでは、INPC別のViewModelがモデルに変更を加えた場合にViewModelが自動的に変更を通知されるように、モデルに保存された情報を実装して実装します。

于 2013-04-16T09:43:00.030 に答える