假设您的应用程序中有多个MVP三元组(WinForms .NET 2.0应用程序),并且每个三元组都负责一个责任区域。协调MVP三元组之间沟通的首选方式是什么?
选项1 协调器对象“拥有”每个模型并通过订阅每个模型中的必要事件来查看协调,然后决定在什么情况下调用哪些模型方法。
担心这可能是一个“神”类。
选项2 演示者“拥有”另一个演示者,当模型中出现感兴趣的内容时,演示者使用另一个演示者来移动通信。
担心主持人不应该有一个公共界面(Presenter-first方法),这会破坏它。
我只是想知道其他人以可扩展的OO方式做了什么来解决这个问题。如果我添加另一个MVP三合会怎么办?把它融入我的协调员有多难?必须有一些很好的例子来说明如何在WinForms应用程序中管理多个MVP三元组?
答案 0 :(得分:3)
不要模糊......但这取决于。我过去使用过的两种方法:
events.Raise<MyEvent> ()
和PresenterB实现:IHandler<MyEvent>
并在其public void Handle (MyEvent @event)
方法中做出相应的反应。界面:
public interface IFooSelection {
public event EventHandler Changed;
Foo Selected { get; set; }
}