您的位置:首页 > 编程语言 > Java开发

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

2016-07-26 15:59 204 查看
基本概念:

观察者模式属于行为型模式,其意图是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

这一个模式的关键对象是目标(Subject)和观察者(Observer)。一个目标可以有任意数目的依赖它的观察者,一旦目标的状态发生改变,所有的观察者都得到通知,作为对这个通知的响应,每个观察者都将查询目标以使其状态与目标的状态同步。

适用场景:

观察者模式,用于存在一对多依赖关系的对象间,当被依赖者变化时,通知依赖者全部进行更新。因此,被依赖者,应该有添加/删除依赖者的方法,且可以将添加的依赖者放到一个容器中;且有一个方法去通知依赖者进行更新。

比如,大家P进电影院看电影,电影M为被观察者,

接口 P{

Begin()

}

A某

A implement P{
Begin{
“哈哈”
}
}


B某

B implement P{
Begin{
“哈哈哈哈”
}
}


C某

C implement P{
Begin{
“哈哈哈哈哈哈”
}
}


被观察者

interface B{
建立一个注册观察者对象的接口;
public void a(P o);
建立一个删除观察者对象的接口;
public void d(P o);
建立一个当目标状态发生改变时,发布通知给观察者对象的接口;
public void n();
}


电影

被观察者承担管理观察者和通知观察者的职责,当电影开始过后就通知观众

M implement B{
Vector v;
public M(Vector v)
{
this.v=v;
}
public void a(Observer o)
{
v.add(0);
}
public void d(Observer o)
{
v.remove(0);
}
public void notice(){
for(int i=0;i<v.sise();i++)
{
v.get(i).Begin()
}
}
}


Vector v=new vector()
v.a(A);
v.a(B);
v.a(C);
M m=new M(v);
m.notice();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: