当前位置:  开发笔记 > 编程语言 > 正文

视图中的跨组件通信(MVC)

如何解决《视图中的跨组件通信(MVC)》经验,为你挑选了0个好方法。

有哪些最佳实践可以协调View中复杂组件之间的交互?

我不是在谈论像组合框或网格控件这样的简单小部件,而是由多个小部件组成的组件,这些组件可能值得单独进行单元测试.

你会:

    为每个组件定义抽象接口, 让控制器通过依赖注入将它们连接起来,让它们通过方法调用直接相互通信?因此,组件了解其他组件的接口.

    定义每个组件可以触发的事件 让控制器通过事件监听器直接将它们连接起来?因此,组件具有附加到其他组件的事件接收器的事件处理程序.

    为每个组件定义抽象接口,定义它们可以触发的事件 让控制器监听所有事件并在接口上执行方法调用?因此,组件对其他组件完全不可知.

    观察者模式的经典应用?

    还要别的吗?

更新:我从#1-3中删除"让控制器......",因为在这些情况下,控制器不一定需要进行路由/编排.它可能是视图本身.

我在最近的一个项目中采用了方法#3,我很满意组件的解耦和个体可测试性.但是,我觉得我可以简化组件的接线.在我的例子中,主View对象必须在每个组件上添加多个事件侦听器,然后在有时进行一些本地处理(比如与模型交谈)之后调用适当组件上的方法.添加事件处理程序的代码看起来有点乱,我特别想找到一种干净的方法.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有