设计模式小结一观察者(Observer)模式
先上结论:
这是一个开发者经常用到但你可能没有意识到的设计模式,当前Android客户端开发经常用到的几大流行框架:LiveData、RxJava、EventBus等的核心都是采用此种设计模式思想。讲到这里,还不赶紧研究下这几个开源框架的源码,不然面试问的深入一点你就露馅了!
开干!
简单总结下观察者模式
出版者+订阅者=观察者模式;定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖都会收到通知并自动更新
java SDK中就用现成可用的观察者模式的代码,但是利用java api中的Observable和Observer存在以下缺陷:
1)观察者被注册的顺序与其被通知的顺序并不一致
2)Observable是个类而非接口,不利于拓展,违反设计原则
android中用的最多的观察者模式的地方就是各种事件监听
上理论:
一、定义与原理
观察者模式又称为模型-视图(Model-View)模式、源-收听者(Listener)模式或从属者模式。在此种模式中,一个目标对象(被观察者)管理所有相依于它的观察者对象,并在其状态改变时主动发出通知。这通常通过调用各观察者所提供的方法来实现。
二、角色与职责
- 抽象主题(Subject):把所有观察者对象的引用保存到一个集合里,每个主题都可以有任何数量的观察者。它提供一个接口,可以增加和删除观察者对象。
- 具体主题ÿ