您的位置:首页 > 其它

设计模式——观察者模式(Observer)

2015-08-27 17:06 399 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息