1 つのビュー モデル インスタンスを複数のビューで共有することについて、人々はどのような考えを持っているのでしょうか?
これはアンチパターンですか、それとも受け入れられている慣行ですか? 長所と短所は何ですか?
1 つのビュー モデル インスタンスを複数のビューで共有することについて、人々はどのような考えを持っているのでしょうか?
これはアンチパターンですか、それとも受け入れられている慣行ですか? 長所と短所は何ですか?
ただ私の経験から
主な欠点は、ビューの表示内容が異なる場合、将来のリファクタリング作業になる可能性があります。ビューを共有することを決定するときは、これがどの程度の可能性があるかを考える必要があります。
ビューモデルの命名にも注意してください。たとえば、Book/Edit.aspx および Book/Add.aspx ビューがある場合、Book/Edit.aspx で AddBookViewModel.cs を使用したくないでしょう。これにより、たとえば、テストで紛らわしいコードが作成される可能性があります。
上記の例では、通常、CreateEditBookViewModel.cs を使用します。
SharpArchitecture (www.sharparchitecture.net/) のようなものを見ると、彼らは足場でこのアプローチを使用していると思います。また、パーシャルを介して共有ビューモデルを使用してビューの要素を共有しています。
それがアンチパターンであるという点では、ノーと言えます。健全なコードの再利用です。