观察者模式,也叫发布-订阅模式
订阅的接口
|
|
接口的三个实现类,也可以叫做三个观察者或者订阅者
|
|
|
|
|
|
用户实体类
|
|
模拟登录的控制类
|
|
在此例子中,用户登录成功后想要干三件事
- 发邮件
- 把自己的用户数据写进本地数据库进行缓存
- 初始化聊天
如果后期需求改了,登录成功之后还要做其他事,那么只要再添加一个 Subscribe
的实现类就行了,然后订阅到 UserAction
对象
登录成功之后依次调用观察者列表的 onSuccessEvent
方法, 这个过程是同步的,如果某个观察者的onSuccessEvent
方法执行时出现了阻塞,将会影响其他的观察者,所以这一使用多线程的方式改进代码
改动UserAction类的loginSuccess
方法如下:
|
|