【发布时间】:2012-02-05 03:09:39
【问题描述】:
在 GUI 应用程序中,我正在使用带有被动视图的 MVC,如 here 所述。
这种模式是模型-视图-控制器和模型-视图-展示器的另一种变体。与这些一样,UI 分为处理显示的视图和响应用户手势的控制器。被动视图的显着变化是视图完全被动,不再负责从模型中更新自身。因此,所有视图逻辑都在控制器中。因此,视图和模型之间的任一方向都没有依赖关系。
到目前为止,我的控制器注册为现有的、由被动视图在初始化时创建的静态组件的侦听器。现在,控制器需要动态创建可变数量的 UI 组件,具体取决于模型(具体来说,现在我说的是复选框网格 - 网格的尺寸是可变的 em>)。
这是我犹豫的地方:
- 是否应该在 Controller 中实现此动态 UI 创建代码?这将导致由于保持 View 不了解 Model 而导致的代码不太复杂,但部分呈现将由 Controller 决定。 .
- View 是否应该提出一种通用的、独立于模型的方式来按需创建 UI 组件,让 Controller 使用它并将侦听器注册到检索到的 UI 组件?在这里,控制器必须在模型对象和通用对象(具体而言,字符串,整数,...)之间来回转换。
【问题讨论】:
标签: model-view-controller user-interface design-patterns language-agnostic passive-view