在 GUI 应用程序中,我使用的是带有被动视图的 MVC,如此处所述。
这种模式是模型-视图-控制器和模型-视图-展示器的另一种变体。与这些一样,UI 分为处理显示的视图和响应用户手势的控制器。被动视图的显着变化是视图完全被动,不再负责从模型中更新自身。因此,所有的视图逻辑都在控制器中。因此,视图和模型之间的任一方向都没有依赖关系。
到目前为止,我的控制器注册为被动视图本身在初始化时创建的现有静态组件的侦听器。现在,控制器需要根据模型动态创建可变数量的 UI 组件(具体来说,现在我说的是复选框网格 - 网格的尺寸是可变的)。
这是我犹豫的地方:
- 这个动态 UI 创建代码是否应该在 Controller 中实现?这将导致由于保持视图不知道模型而导致的代码不太复杂,但部分演示文稿将由控制器决定......
- View 是否应该提出一种通用的、模型独立的方式来按需创建 UI 组件,让 Controller 使用它并将侦听器注册到检索到的 UI 组件?在这里,控制器必须在模型对象和通用对象(具体来说,字符串,整数,...)之间来回转换。