标签:
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