我在Windows窗体应用程序中使用MVP模式.我需要更改视图上的单选按钮.我可以通过在视图上公开一个布尔属性来做到这一点,但是我应该使用事件来操纵视图吗?
这是一个纯粹的问题,而不是务实......还有一点个人风格.无所谓......事件只是比普通方法更多的工作,但更多的解耦. 亲身
我喜欢将视图分离或不知道演示者,因此视图通过引发事件与演示者进行通信.这消除了视图需要引用演示者的需要.让视图变得稀薄和愚蠢.
另一方面,演示者通常具有对视图(和模型)的成员引用.因此,它可以通过接口进行方法调用来与视图对话(允许视图被替换,只要它们符合IView接口).例如,在您的情况下,Set_X_Option(eOptionEnum)将是IView接口的成员,然后演示者可以适当地调用它.
但是你可以通过两种方式使用事件来删除这个IView依赖(presenter引用了一个需要实例化和插入的IView)...但是我发现它的工作太多了.上述计划从未让我失望......