2011-01-17 10 views
5

私が読んだところでは、ViewModelはViewのモデルであると考えられているので、それぞれのViewが独自の対応するViewModelを持つことがMVVMのベストプラクティスと考えられます。一般に、異なるビューによるViewModelsの再利用は推奨されないようです。これはいつものケースですか?そうでない場合は、ViewModelをこのように再利用する必要があるかどうかを判断するための一般的なガイドラインは何ですか?ViewModelsを別のビューで再利用する必要がありますか?もしそうなら、いつ?

ViewModelを別のViewで再利用するのは、2つのビューがモデルから完全に同じデータを使用し、ビュー自体が異なるデータを表現するだけの場合があると思います。ビューが同じデータをさまざまな方法で表現することができれば、1つのViewModelが各ビューを効果的に提供できる可能性があります。

答えて

8

私たちがルールを持っている理由は、ルールを破る前に考えるようにするためです。

つまり、2つの同様のビューで同じViewModelを使用しても問題はありません。あなたは2つのビューが分岐しないように非常に注意する必要があり、2つの異なることを試みているビューモデルを残します。

これは、ビューごとに1つのビューモデルを持つことが推奨される理由です。これにより重複が発生する可能性がありますが、長期的に見通しを維持しやすくなります。

重複については、共有ベースクラスを持つビューモデルクラスに問題はありません。

+0

これを改善できませんでした。私は、複数のビューのために同じVMから始まり、必要に応じてそれらを分割したり、共通の祖先を抽出したりすることは間違っていません(YAGNIを覚えておいてください)。 –

+0

それは論理的だと思われる。ありがとう。 – foven

関連する問題