我有一系列的继承对象,它们只是在类之间的几个字段之间非常相似。这个类层次结构的基础是一个抽象类,它包含许多后续对象应该具有的几个字段。事情是这样的:DRY主体与MVC中的轻/薄视图相似/继承的对象
abstractBase
obj1 : abstractBase
obj2 : obj1
obj3 : obj2
显示这些对象基本上是相同的所有的人的看法,我只是引入新的div来显示不同的数据。由于我对MVC相当陌生,因此我只有两个主要选项:
一种方法是为每个具体对象创建强类型视图。每个视图都非常相似,但对于基础对象略有不同。在我看来,这违反了DRY本金,因为每个观点的90%或更多内容将在下一个内容中重复。但有意义的是,这些观点将没有任何重要的逻辑。
另一种方法是将视图绑定到基本抽象类,然后引入对继承类的检查以确定是否需要渲染某些东西。例如:
if (Model.baseObject is obj3){ render out the special fields }
好的,我不会违反DRY本人,我认为这是一件好事。但在不利方面,这些观点将包含逻辑。据我所知,这是或多或少皱起了眉头。
- 有没有人有过类似的情况?
- 你采取了什么方法?
- 是否有另一个选项我没有看到/没有意识到?
现在我正在倾向*倾向较重视图和较少冗余代码。它会更好。
感谢
谢谢mhornfeck。我正在寻找错误的条款。那篇文章很棒。 +1 Shyju,我仍然在反对强烈类型的观点,我只是在调整我即时“绑定”的内容。但是现在我想到了你在说什么......部分视图根据它们插入的视图继承了它们绑定的内容。所以它们也可能适合我的需要。唯一的缺点是我仍然看到多个视图=控制器中的多个actionevents =更多重复的代码。 + 1 我仍然有点撕裂,因为我正在做的事情可能过于复杂......但结果是减少重复... – 2012-03-20 03:26:51