bou*_*ard 5 model-view-controller components controller model view
我在实现它之前正确理解MVC的问题是第三个问题:
我有两个案例:
这些问题的相关之处在于它们都涉及模型 - 视图 - 控制器三元组之间的通信,这个主题在我的谷歌搜索中没有找到太多讨论.
解决此问题的显而易见的方法是将所有内容包装在顶级"应用程序"对象中,该对象处理模型之间的事务,并允许控制器调用彼此的方法.我已经看到了这个实现,但我不相信它是一个好主意.我还可以看到控制器观察多个模型并响应多个视图的可能性,但这似乎会变得非常混乱并且难以遵循.
关于如何最好地实施这种串扰的建议?我觉得这是一个非常明显的问题,但我一直无法找到一个记录完备的解决方案.
更广泛地说,如果有人有链接显示这些MVC问题的典型方法,我很乐意看到它.我没有太多运气找到可靠的,非平凡的参考资料.Python中的例子很可爱,但我很乐意阅读任何内容.
编辑1:
我看到下面说了一些非常有趣的事情,一般来说没有人对我所描述的方法有任何问题.它已经几乎是Vincent描述的FrontController设计的一种懒惰形式.我当然没有预见到实现这种模式会有任何问题,但是,似乎没有人真正解决过模型之间的沟通问题.所有答案似乎都是在单个模型中解决对象之间的通信问题.我更感兴趣的是为应用程序的单独组件维护单独的模型,因此我不会将50个状态属性填充到单个Model类中.我应该将它们作为子模型进行维护吗?
您可能需要考虑查找前端控制器设计模式。
前端控制器模式定义了一个负责处理应用程序请求的组件。前端控制器集中了视图选择、安全性和模板等功能,并将它们一致地应用于所有页面或视图。因此,当需要更改这些函数的行为时,只需更改应用程序的一小部分:控制器及其帮助器类。
这样,来自视图的所有请求都会发送到 FrontController,然后由 FrontController 决定调用哪个特定操作(控制器)。有时,它可能会像第一种情况一样直接转发到另一个视图。
模型中的多个对象相互通信没有问题。事实上,这将是很常见的。在我看来,模型中的所有对象就像一个组件来表示数据和对数据的操作。
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |