【发布时间】:2014-08-29 01:03:45
【问题描述】:
注意:问题是关于服务器端 Web MVC
在 MVVM(C) 设计中,每个 View 都访问其 ViewModel。 ViewModel 就像是 Model 的桥梁,还包含 View 的状态。
我可以通过一个简单的示例轻松理解这一点,例如列出用户的视图:您将拥有一个使用 UserViewModel 的 UserView,而后者又是视图的 UserModel 的抽象。
现在想象一个网页,它在同一个页面上显示有关用户、产品和订单的信息。还有一个总结元素数量的字符串:“24 个用户,8 个产品,210 个订单”。
在上述情况下,ViewModel 如何只坚持一个模型(假设您有 UserModel、ProductModel、OrderModel),因为视图需要显示所有三个模型的信息?
一个 ViewModel 是否应该包含多个 Model 并在 ViewModel 和 Model 之间具有 1:n 链接?
一个 ViewModel 是否应该包含其他 ViewModel 并在 ViewModel 和 Model 之间保持 1:1 链接?
似乎 framweorks 像 e.g. ZF2 (php) 将视图模型嵌套到主视图模型中: http://framework.zend.com/manual/2.0/en/modules/zend.view.quick-start.html#zend-view-quick-start-usage-nesting
PS:这个问题是关于服务器端 Web MVC(相对于 javascript 客户端 MVC)而不是特定于任何编程语言(尽管我使用的是 PHP,所以任何与 c# 相关的东西,如绑定、wpf 或其他 .net组件将难以掌握)。
【问题讨论】:
标签: design-patterns model-view-controller mvvm