前言:在平时的项目中设计模式用的比较多的其中一种就是观察者模式,在前面的文章中写到过的EventBus、otto都是属于观察者模式的第三方开发框架。但是android中jdk也有相应的api来实现自己的观察者效果,就是Observer And Observable,今天这篇文章就是主要来介绍使用这两个类来实现自己的观察者模式的。
观察者模式定义
定义一个被观察者和多个观察者,每当被观察者变化,所有观察者都会得到通知。
观察者模式优点
观察者模式最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式此时就派上用场了。观察者模式又被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
理解重点
观察者模式核心就一个点,记住这个点你就能理解并记忆:用一个list把观察者保存起来,并提供add和remove观察者,在被观察者变化的时候就遍历并调用list里观察者的方法。核心就是一个list遍历。