【发布时间】:2014-03-09 10:43:19
【问题描述】:
在 MVC 模型中,当视图足够复杂时,视图在哪里区分模型?
我的问题源于我尝试使用 Canvas view 开发桌面应用程序。用户具有点击模式(例如选择、添加对象A、添加对象B、添加对象C等)。执行操作时,这会更改 模型 中的数据。 model 的状态稍后可以通过另一个 view 控件保存到文件中。
在开始项目时,我尝试将尽可能多的 Canvas 特定状态封装到 Canvas 视图中。然而,当我尝试适应 MVC 模式时,似乎它的大部分都属于 模型。
我觉得 Canvas 类似乎足够复杂,可以包含自己的状态,这就是我产生困惑的地方。它包含 Canvas 上几种类型对象的位置。视图数据和模型数据之间的边界在哪里?或者这是 MVC 中存在 MVC 的情况(即 M V(MVC) C)?
【问题讨论】:
-
扩展问题:如果我有一个如上所述的画布点击模式不会永久存储,是否应该将其传送到模型或控制器?
-
在研究了一些模式后,我选择了 MVVM。这似乎正是我所需要的。 ViewModel 保存特定于视图或控件的数据,这些数据永远不会被保存,但仍需要由 UI 绑定。