次の2つのシナリオを検討してください。
- ユーザーがビューのボタンを押し(例:注文の履行)、ビューをすぐに更新したい(ボタンを無効にする、プログレスバーを追加するなど)
- サービスレイヤーはビジネスイベントを発生させますが、これは最終的にビューに反映される必要があります(たとえば、製品が在庫切れになっている場合)。
どちらの場合も、ビューモデルを更新するために何らかのメカニズムXが合法的に必要です。MVVMを使用すると、ビューは、イベントハンドラーでビューモデルのプロパティを設定するか、コマンドバインディングを介して、またはその他のメカニズムを介してこれを行うことができます。
サービス層は、何らかのメカニズムYを使用してこれを行うことができます。たとえば、ビジネス/ドメインモデルでイベントを発生させたり、ビューモデルを操作するコマンドを作成したり、ビューモデルでメソッドを呼び出したりします。
実際、XとYは同じメカニズム(またはパターン)である可能性があります。
これを行うのに良いものは何ですか、それはMVVMの精神を維持しますが、DRYですか?