我有一系列继承的对象,它们都非常相似,只有几个字段在类之间有所不同。在这个类层次结构的基础上是一个抽象类,它包含所有后续对象应该具有的许多字段。像这样的东西:
abstractBase
obj1 : abstractBase
obj2 : obj1
obj3 : obj2
显示这些对象的视图对所有对象来说基本相同,我只是引入新的 div 来显示不同的数据。由于我对 MVC 相当陌生,因此我只有两个主要选择:
一种方法是为每个具体对象创建强类型视图。每个视图都非常相似,但底层对象略有不同。在我看来,这违反了 DRY 原则,因为每个视图的 90% 或更多内容将在下一个视图中重复。但从好的方面来说,这些观点将没有任何重要的逻辑。
另一种方法是将视图绑定到基本抽象类,然后对继承的类进行检查以确定是否需要渲染某些内容。就像是:
if (Model.baseObject is obj3){ render out the special fields }
从好的方面来说,我不会违反 DRY 原则,我认为这是一件好事。但不利的一面是,视图将包含逻辑。据我了解,这或多或少是不赞成的。
- 有没有人遇到过类似的情况?
- 你采取了什么方法?
- 还有其他我没有看到/不知道的选择吗?
现在我倾向于*更重的视图和更少的冗余代码。它看起来更好。
谢谢