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

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

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


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

个人对观察者模式的理解


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

个人对观察者模式的理解

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

测试:

个人对观察者模式的理解

结果:

个人对观察者模式的理解


观察者模式总结:

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

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


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

相关文章:

  • 2021-05-25
  • 2021-11-30
猜你喜欢
  • 2022-12-23
  • 2021-08-06
  • 2021-08-30
  • 2021-08-13
  • 2021-10-26
  • 2021-12-24
  • 2021-09-20
相关资源
相似解决方案