观察者模式在MVP中的应用
2015-08-04 11:04
309 查看
先简单写下观察者模式。观察者模式,又叫做发布-订阅模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,是他们能够自动更新自己。
客户端调用
在MVP架构中。UI界面(V)会发布一系列的事件(此时UI就是具体的发布者),提供给presenter(P)订阅(此时Presenter就是具体的观察者)。
在MVP中处理业务逻辑都是有Presenter去做。但是具体什么时候去处理呢,那就是当UI发生了变化(点击了按钮等)的时候,触发了事件,此时通知了其订阅者,也就是观察者。观察者就会自动的触发业务逻辑的处理。
private void button1_Click(object sender, EventArgs e) { PublishA publish = new PublishA(); SubscriberA subscriber1 = new SubscriberA(); SubscriberB subscriber2 = new SubscriberB(); //订阅者1订阅了发布者的事件。 publish.OnNotify += new NotifyEventHandle(subscriber1.Update); publish.OnNotify += new NotifyEventHandle(subscriber2.Update); publish.Status = "AAA"; publish.Notify(); }
客户端调用
在MVP架构中。UI界面(V)会发布一系列的事件(此时UI就是具体的发布者),提供给presenter(P)订阅(此时Presenter就是具体的观察者)。
在MVP中处理业务逻辑都是有Presenter去做。但是具体什么时候去处理呢,那就是当UI发生了变化(点击了按钮等)的时候,触发了事件,此时通知了其订阅者,也就是观察者。观察者就会自动的触发业务逻辑的处理。
相关文章推荐
- 2种Java删除ArrayList中的重复元素的方法
- Android Studio如何快速生成get,set,tostring,构造函数
- 南邮 OJ 1096 组合数
- Maximum Gap
- 调用Controller方法的几种方式
- 【bzoj2563】 阿狸和桃子的游戏 贪心
- hdu 1358 Period(给定一个字符串,求有多少个前缀(包括自己本身),它是由k(k>2,并且尽量大)个循环节组成的)
- 1072:字母排列
- 语义化版本2.0.0
- 转:C++编程隐蔽错误:error C2533: 构造函数不能有返回类型
- sql 系统表协助集合
- shell的含义
- 从零开始学Python
- 如何在DAVE4 SDK import已有的APP
- Same Tree
- linux 下编译安装Qt
- 微信服务号 网站服务器不能直接获取用户session的问题
- Linux cronolog
- 实用小技巧(一)
- try