Java之设计模式
大家都知道Java里面最著名的设计模式有23种,最为人熟悉的莫过于工厂模式,
但是设计模式中的观察者模式却往往被人们给忽略了。殊不知观察者模式也是23中模式中占有举足轻重的地位。
这篇发文就是要给大家讲解下观察者模式,如果观察者模式使用得当,会使你的代码看上去简洁,工整,美观很多。
观察者模式前世今生:
JDK1.2后,Java对观察者模式进行了支持,并且提供了支持接口和实现类。
其中接口 java.util.Observer 用来指定观察者,之后,观察者必须实现 void update(Observable o, Object arg) 方法。
而 java.util.Observable 则用来指定观察物(被观察者或可被观察的事物),并且提供了一系列的方法。读者可以很轻易的使用这个接口和实现类来实现观察者模式。
观察者接口和实现类解释:
java.util.Observer 只有一个简单的方法 void update(Observable o, Object arg)
其中,参数 Observable o 用于指定触发 update 方法的对象, Object arg 用于指定触发 update 方法时候的附加参数。
如果开发过桌面应用,那么你应该很了解,这就好比是事件处理机制,其中 Observable o 可被看作事件源。 Object arg 可被看作一种消息。
观察者模式应用:
好记性不如烂笔头,下面我们看看具体该如何使用 这一模式,看过后想必大家会有一点感悟的。
1:新建被观察者类:
2:新建观察者类:
3:新建测试main方法:
看到这里,我们期望的结果是不是应该会输出:
小伙伴们,我要出版新书啦!名字是:《平凡的世界》我要购买《平凡的世界》
4:运行main方法验证结果:
如我们所愿,结果输出正确,我们不禁思考,这种模式是不是也很有乐趣?要知道观察者模式刚被人们发觉时候rabbitmq还没有像现在这么流行。有没有一种收发消息与订阅消息的感觉?希望有兴趣的同学下去仔细思考。