我想知道尝试创建一个采用通用视图模型的视图是否是一种好的做法?
我想知道这一点,因为有人提到他预计必须执行大量重复代码,除非他开始制作通用视图和通用视图模型。
所以基本上视图就像一组控件。一个视图可能有 2 个控件(例如文本框和单选按钮),另一个视图可能有 50 个控件。
它们都将具有相同的外观和感觉(它只是随着控件数量的增加而增加)。基本上,他在考虑让视图模型接受对象(域对象),查看它并查看 50 个字段并呈现正确的控件类型。
我想可以使用编辑模板来确定控件,但我只是不喜欢通用视图模型。
我喜欢泛型,它们可以做非常强大的事情,在某些情况下它们很好,但我只是总体上不喜欢它们并尝试不使用它们。
我发现大多数时候它可能会减少重复代码,但有时它会使代码变得更加复杂。当然,这可能只是因为我对编程还比较陌生,而且它可能仍然高于我的技能水平。
我遇到的下一个问题是,我认为视图模型应该尽可能平坦,并且只公开实际要使用的数据,这样人们就不会开始使用本来就不应该出现在视图中的属性。
我遇到的下一个问题是,如果您有一些复杂的对象,其中包含对象,那么它可能会继续下去。它可能会持续很长很长一段时间。
就我个人而言,我避免在视图模型中使用泛型。我同意你提到的反对他们的大部分理由,尤其是这一点:
我遇到的下一个问题是我
认为视图模型应该是
尽可能平坦并且只暴露数据
这实际上会被使用
人们不会开始使用房产
这不应该出现在视图中
第一名
视图模型背后的想法是,它们需要专门与给定视图的需求相关联,而不是像领域模型那样使它们变得通用(/通用)。与在整个视图和局部视图中重用一些通用的怪物相比,我更喜欢在视图模型中复制代码。
即使在您需要的情况下生成动态表单和控件 https://stackoverflow.com/questions/6329461/how-to-create-controls-dynamically-in-mvc-3-based-on-an-xml-file/6333898#6333898您不需要使用通用视图模型。
因此,除非您有一些超特定的场景(目前无法想到任何场景),否则在视图模型中避免泛型可能是一件好事。
话虽这么说,不要完全排除它们,如果您觉得在某种情况下通用视图模型可能有用,请毫不犹豫地在这里展示它,通过解释场景并显示所有代码,以便我们可以讨论一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)