天天看点

观察者模式

观察者模式:

        观察者模式定义了一种一对多的依赖关系,当一个对象改变状态时,它的所有依赖者都会受到通知,并自动更新。

注意: 观察者模式会造成内存泄漏,一定要记得取消订阅

观察者模式

uml关系图如下:

观察者模式

uml

观察者模式提供了一种对象设计,让主题和观察者之间松耦合。

观察者与主题之间依赖于接口,主题不需要知道观察者的具体实现

可以动态添加删除观察者,对主题没有任何影响

新增新类型的观察者对主题没有影响,主题的代码不需要修改,而且旧的观察者也不受影响

观察者与主题都可以独立复用,因为是松耦合

只要约定的接口不改变,修改主题或观察者任何一方,都不会影响另一方

代码实现

首先定义抽象的观察者:

定义被观察者:

定义具体的观察者

定义具体的被观察者:

书写测试类:

其实,如果大家做过android开发的话,android里面大量用了观察者模式,用textwatcher,eventbus等。

继续阅读