观察者设计模式

按照我的理解,观察者设计模式,最简单好理解的例子就是气象台和观察站,大部分是1对多的关系,一旦气象台的数据进行改变,那么就会通知观察站自己的数据已经发生了改变,也可以理解为货仓,其他小商家进行进货,当仓库有货就会通知所有的小商家来进行购买
这里我们用气象台和观察站的例子
观察者设计模式
先上其uml图,因为我们是1对多进行操作,所以我们把观察者对象存入一个arraylist集合中,把集合聚合在我们的气象站中,接口提供三个抽象的方法,注册观察者,删除观察者,以及通知观察者,当我们的气候进行改变,就通过我们的气象站中的通知方法,遍历其所有的观察者,把我们更新的数据存入观察者中.
观察者设计模式
观察者设计模式
观察者设计模式
观察者设计模式
这些代码有些细节还可以进行封装成方法,进一步抽象,以及抽象类为了看的方便,就直接在抽象类里面实现了方法,我们如果需要扩展也很方便,只需要继承即可,但是实际开发操作尽量不在抽象类中全部实现