美文网首页Java学习笔记
观察者模式——Observer

观察者模式——Observer

作者: Ling912 | 来源:发表于2016-08-16 17:24 被阅读84次

观察者模式,其实就是观察者和被观察者之间的通信。

直接上代码吧,理论先不讲了:

首先定义观察者和被观察者的接口。

观察者接口

观察者里面比较简单,就定义了一个更新数据的接口;

被观察者接口

被观察者里面有三个方法,分别是添加观察者,移除观察者,和通知观察者;

观察者

观察者实现观察者接口的更新的方法,这里只打印一下接收到的信息。

被观察者

被观察者分别实现添加,更新和通知观察者三个方法,除此以外,还要写一个集合(List)来存放观察者。构造方法没什么可说的了,添加和删除观察者也就是list的add和remove,最后一个notifyOberver() 这个方法通知观察者,首先遍历一点观察者的List,确保能够通知到每一个观察者,然后调用观察者的update的方法。

最后写一个测试类。

测试类

接下里看测试类:

line7,定义一个被观察者,ling9-ling11,添加两个观察者(不要问我为什么一个观察者要搞一个对象去接收,一个却直接new,往后看你就明白了!哈哈!),ling13,通知观察者,然后看输出的打印台,打印台上是不是能够接收到两句被观察者发出的消息,这就对了嘛,因为观察者有两个,说明两个观察者都接收到了被观察者发出的消息。

line15,移除了一个观察者(这里就是为什么前面一个用对像去接收,一个却直接new,因为我直接new的话,就没办法移除了,哈哈!),然后看line17,通知观察者,再看控制台的输出,控制台的输出 "this is message_2!"  是不是只输出了一次,这就对了嘛,因为观察者已经被我移除掉了一个,就只剩下一个了,自然也就只能打印出来一个咯!

相关文章

  • Android 开发--观察者模式

    观察者 模式 有两个 角色,观察者observer ,被观察者observable。 Observer 是个接口,...

  • 设计模式之观察者模式

    观察者模式 Observer Intro 观察者模式又叫做 发布订阅(Publish/Subscribe)模式,观...

  • 行为型模式——观察者模式

    观察者模式定义 观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象...

  • c++观察者模式

    1.观察者模式简介    观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe)...

  • 面試小記

    1:设计模式 观察者模式observer observerble,subscribe (订阅) (1)观察者对象 ...

  • 观察者模式

    观察者模式 观察者模式的定义 观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/s...

  • 设计模式之观察者模式

    观察者模式定义 观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/Subscrib...

  • JS观察者模式简介及实例

    一、概念观察者(observer)模式:又称订阅/发布(subscriber/publisher)模式,被观察者(...

  • 行为型设计模式总结

    观察者模式 Observer模式作用是当一个对象发生变化时,能够自动通知它的观察者刷新状态。Observer模式提...

  • 设计模式——观察者模式

    观察者模式的定义 观察者模式(Observer Pattern)也叫发布订阅模式(Publish/subscrib...

网友评论

    本文标题:观察者模式——Observer

    本文链接:https://www.haomeiwen.com/subject/ltbpsttx.html