个人对观察者模式的理解

问题:观察者模式有什么用?通常被用来实现事件处理系统,当一个主题对象发生改变的时候,所有的观察者都会发生改变;

假如我们现在需要测量人的身高体重,电子秤显示的数值会随着被测量的人不同而显示不同的数据,这个时候我们就可以把人的身体数据看为主题对象(Subject),把电子秤看为观察者对象(Observer),电子秤可以有多个,当人的数据变化的时候多个电子秤的数据都会变化,这样就可以看为主题对象和观察者对象是一对多的关系;

观察者模式:定义了对象之间的一对多依赖,这样依赖,当一个对象改变状态的时候,它的所有依赖者都会受到通知并自动更新;


首先我们定义一个主题对象:


主题对象有了,现在需要观察者对象,观察者对象可以是多个,同时接收到主题对象发生变化的通知:


多个观察者都可以接收到主体对象发生变化的通知,假设还有第二把电子秤;

测试:

结果:



观察者模式总结:

主题对象需要继承Observable,主要依靠setChanged()和notifyObservers()通知观察者;

观察者可以有多个 要实现Oupdatebserver接口,需要在自身的构造器中传入主题对象以便使用observable.addObserver(this)来注册成为观察者,然后观察者对象依靠update(Observable o, Object arg)来实现自身数据的更新,在更新之前需要传入的判断主题对象是否正确;


以上只是个人的一些理解,如有不对请指正,多谢~

猜你喜欢

转载自blog.csdn.net/dx94sg/article/details/80350822