mvp中,v和v直接是否有关联,比如v1事件需要 通知v2,或者说p和p直接是否有关联呢,
具体是这样的,有一个窗体v1,v1包含v2,v3这2个用户控件,现在v2中有个下拉框事件,改变后v3需要同时修改一些UI的东西,v2和v3是不同的2个用户view,怎么交互呢
这是一个思路问题,提示你一些问题的关键点,你自己思考一下。
1、无论web程序还是winform程序,假使A用户已经打开页面,B用户变更操作后,要A用户的界面发生变化,这个设计有意义吗?
2、对应这个问题,我们可以变相的理解一些权限问题,比如管理员更改了用户A的权限,使其失去或增加了一些功能。对应界面的菜单或某个区域消失和显示。那么设计模式也应该客户端界面打开时重新生成。叫服务器主动通知,基本是不现实的,尤其WEB程序。所以只能客户端主动请求更新,web程序需要js配合,winform程序稍微简单一些。
你应该理解错了,或者我表达不清楚,我这里环境是winform,而且winform2个界面交互是很正常的,但是因为使用mvp模式,view和view就隔离了,但是也是需要交互的,或者说view所属的Presenter需要交互,如果直接传递IView接口,虽然可以解决交互问题,但是view和view之间绑定太死了,最近参考了DDD的事件模式,可以解决这个问题,prism events就是这样写的
@刘标才: 我明白了,类似原来的用户控件了,其实没必要这么纠结了,就对外公开方法和属性就好,这种view又不会考虑重用了。