Sco*_*ver 6 model-view-controller asp.net-mvc
我在网上看到使用"厨房水槽"模型是不好的做法:
规则#3 - View规定了ViewModel的设计.只有使用ViewModel传递渲染视图所需的内容.
如果Customer对象有50个属性,但只有一个组件显示其名称,那么我们创建一个只包含这两个属性的自定义ViewModel类型.
然而,吉米·博加德随后解释这是如何好的,这让我有点质疑.让我的模型只包含一个客户列表是非常容易的,我甚至可以使用我的POCO.
那么现在我可以为网站上的每个页面创建自定义的小视图模型片段?使用Customer属性的每个页面都会获得一个,但当然无法共享,因为某些信息是无关的,例如,如果一个页面使用的是Age而不是Name.两个新的迷你视图模型类对吗?
这是非常耗时的,似乎它会导致一百万个小型自定义视图模型 - 有人可以详细说明这种方法的效用以及为什么更简单的方法是坏的?
如果您将 POCO 对象用作视图模型,那么您本质上将显示您的私有对象并破坏封装。这反过来会使您的模型很难在不改变相应视图的情况下进行更改。
您的数据对象可能包含仅适用于数据访问层的详细信息。如果您将这些内容公开给视图,有人可能会更改您未预料到的值并导致错误。
许多与 OO 语言中的私有成员相同的原因也适用于这种推理。话虽如此,它仍然经常被破坏,因为创建所有这些只使用一次的“一次性”模型需要大量额外的工作。存在用于创建此类模型的框架,尽管名称让我难以理解,但它可以将对象绑定在一起并挑选出有趣的属性,从而消除创建特定视图模型的一些苦差事。
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |