Java设计模式之观察者模式

来源:互联网 发布:航天信息软件下载 编辑:程序博客网 时间:2024/06/05 12:48

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

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

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


根据类图,同样,我们要实现观察者模式,也要有两个接口,一个接口就是观察者的接口,一个接口就是被观察者的接口,根据,具体的类,即老师为观察者,学生为被观察者,分别来实现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);}}


 



0 0