クラス間でいくつかのフィールドが異なるだけで、すべて非常に似ている一連の継承されたオブジェクトがあります。このクラス階層のベースには、後続のすべてのオブジェクトが持つ必要がある多数のフィールドを含む抽象クラスがあります。このようなもの:
abstractBase
obj1 : abstractBase
obj2 : obj1
obj3 : obj2
これらのオブジェクトを表示するビューは基本的にすべて同じです。異なるデータを表示するために新しい div を導入するだけです。私はMVCにかなり慣れていないので、これには2つの主要なオプションしかありません。
1 つのアプローチは、具象オブジェクトごとに厳密に型指定されたビューを作成することです。各ビューは非常に似ていますが、基礎となるオブジェクトがわずかに異なります。私の考えでは、これは各ビューのコンテンツの 90% 以上が次のビューで繰り返されるため、DRY 原則に違反しています。しかし、利点として、ビューには重要なロジックがありません。
もう1つのアプローチは、ビューを基本抽象クラスにバインドし、継承されたクラスに対してチェックを導入して、何かをレンダリングする必要があるかどうかを判断することです。何かのようなもの:
if (Model.baseObject is obj3){ render out the special fields }
利点として、私は DRY 原則に違反することはありません。これは良いことだと考えています。しかし、欠点として、ビューにはロジックが含まれます。私が理解しているように、これは多かれ少なかれ眉をひそめています。
- 同じような状況になった人はいますか?
- どのようなアプローチをとったのですか?
- 私が見なかった/認識していなかった別のオプションはありますか?
現在、私はより重いビューと冗長性の少ないコードに傾いています。それはより良いようです。
ありがとう