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

Java设计模式之观察者模式

2016-07-07 13:41 441 查看
一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知,此种模式通常被用来实现事件处理系统

最常见的观察者模式就是我们经常使用的事件监听器上

我们使用类图来表示观察者模式的关系:



根据类图,同样,我们要实现观察者模式,也要有两个接口,一个接口就是观察者的接口,一个接口就是被观察者的接口,根据,具体的类,即老师为观察者,学生为被观察者,分别来实现Watcher和Observer这两个接口,

下面我们分别创建Watcher这个接口和Observer这个接口:

观察者Watcher:

public interface Watcher {
public void addObserver(Observer obs);
public void removeObserver(Observer obs);
public void notifys(String msg);
}

被观察者Observer:

public interface Observer {
public void reciveMsg(String msg);
}

然后,我们在创建一个Teacher类来实现Watcher这个接口,再创建一个Student类来实现Observer这个接口:

Teacher类:

public class Teacher implements Watcher{
private ArrayList<Observer> list = new ArrayList<Observer>();
public void addObserver(Observer obs) {
list.add(obs);
}
public void removeObserver(Observer obs) {
list.remove(obs);
}
public void notifys(String msg) {
for (Observer obs : list) {
obs.reciveMsg(msg);
}
}
}

Student类:

public class Student implements Observer{
private String name;

public Student(String name) {
this.name = name;
}

public void reciveMsg(String msg) {
System.out.println(name+"收到一条消息:"+msg);

}
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: