Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 多演讲者互动_Design Patterns_Refactoring - Fatal编程技术网

Design patterns 多演讲者互动

Design patterns 多演讲者互动,design-patterns,refactoring,Design Patterns,Refactoring,我有两个观点,每个观点都有自己的演讲者,他们之间需要双向沟通。与视图A中的用户名更改类似,演示者A需要将更改通知演示者B,反之亦然。我应该创建一个高级演示者/事件处理程序,在a或B需要触发事件时收到通知,还是有更好的方法?请注意,从a->B触发的事件和从B->a触发的事件是不同的事件类型。我认为您的观点不应该直接相互交流,相反,两者都应该侦听公共模型中的更改,并将更改传播到公共模型(通过控制器)。这就是这个计划背后的想法。您提到的高级事件处理程序相当于模式中的控制器。听起来您可以从Model V

我有两个观点,每个观点都有自己的演讲者,他们之间需要双向沟通。与视图A中的用户名更改类似,演示者A需要将更改通知演示者B,反之亦然。我应该创建一个高级演示者/事件处理程序,在a或B需要触发事件时收到通知,还是有更好的方法?

请注意,从a->B触发的事件和从B->a触发的事件是不同的事件类型。

我认为您的观点不应该直接相互交流,相反,两者都应该侦听公共模型中的更改,并将更改传播到公共模型(通过控制器)。这就是这个计划背后的想法。您提到的高级事件处理程序相当于模式中的控制器。

听起来您可以从Model View Presenter框架中获益

将MVP框架与事件总线结合使用将允许演示者彼此“交谈”。这是一个非常重要的话题,其实现将取决于您的平台。GWT有很多开源框架(MVP4g和GWTP可能是最好的选择)

这里有一个链接到一篇博客文章,可能会为你指明正确的方向