この質問をした後、私は新しい質問を呼び出す答えを得る
- UIが表示するロジックの詳細を認識してはならないのはなぜですか?
- ViewModelがビューについて何も知らないのはなぜですか?
2つの問題に答える一言:密結合。詳細な説明には、関心の分離と、セキュリティの問題につながる可能性のある悪いコーディング習慣の防止が含まれます。
Sux、なぜこれが考慮されないのですか?
他の回答が述べているように、これはViewModelとViewの間の緩い結合を維持しますが、単一責任の原則にも準拠しています。ViewModelは、データがユーザーにどのように表示されるかを気にする必要がありますか?これはビューのみの責任です。
すべてのクラスには、変更する理由が1つだけある必要があります。ビューにロジックがあるということは、このルールに違反していることを意味します。ロジックが変更された場合は変更する必要があり、UIを変更する必要がある場合にのみ変更する必要があります。
ビューモデルにはビューロジックが含まれています-それはあなたがユニットテストしたいものです。ビューは、ユーザーがViewModelを操作できるようにするための美しいインターフェイスです。
ViewModelがビューについて何も知らないのはなぜですか?
ビューモデルには、ビューへの参照が含まれていてはなりません。