标签:
1观察者模式:有观察者,那么肯定会有相应的被观察者,观察者模式的精髓可以总结为—当被观察者发生变化时,能够及时告知观察值,观察者得到通知后可以进行相应的处理。
2示例代码
2.1 定义观察者接口,方法意为,当观察者收到被观察者的通知时,会做出相应的处理
Obverser { change(); }
2.2定义两个观察者
Observer1 Obverser { change() { System..println(); } }
Observer2 Obverser { change() { System..println(); } }
2.3定义被观察者(既然要通知,那么就应该有保存待通知的对象以及添加删除通知对象的方法,可以拓展;通知的方法)
Subject { notification(); add(Obverser obverser); del(Obverser obverser); opreation(); }
2.4被观察者的实现类(这里为什么定义成抽象类,是因为 可能不同的被观察者会通知不同的观察者)
Msubject Subject { Vector<Obverser> =Vector<Obverser>(); notification() { Enumeration<Obverser> enumeration= .elements(); (enumeration.hasMoreElements()) { enumeration.nextElement().change(); } } add(Obverser obverser) { .add(obverser); } del(Obverser obverser) { .remove(obverser); } }
2.5具体的某一个被观察者
MSubsubject Msubject { opreation() { System..println(); notification(); } }
2.6 测试
Main { main(String[] args) { Subject subject=MSubsubject(); subject.add(Observer1()); subject.add(Observer2()); subject.opreation(); } }
2.7 测试结果
5555555555555555
11111111111111
222222222222222222
标签:
原文地址:http://my.oschina.net/jixin/blog/498216