设计模式_观察者模式

来源:互联网 发布:javascript键值对 编辑:程序博客网 时间:2024/05/22 15:04

应用场景

一对多依赖关系。一个对象状态发生改变,通知观察者去做更新。

使用方法

      观察者模式为JDK内置类型,观察者implements Observer ,被观察者 extend Observable 

测试用例

观察者

public class Student implements Observer {    private String name;    @Override    public void update(Observable observable, Object o) {        Log.v("学生"+name,o.toString());    }    public Student(String name) {        this.name=name;    }}
被观察者

public class Teacher extends Observable {    public void say(String content){        setChanged();        notifyObservers(content);    }}

具体体现

Student stu1t=new Student("小明");Student stu2=new Student("小王");Teacher teacher=new Teacher();teacher.addObserver(stu1);teacher.addObserver(stu2);teacher.say("语文老师说:记得写作业");Teacher teacherC=new Teacher();teacherC.addObserver(stu1);teacherC.addObserver(stu2);teacherC.say("数学老师说:同学们早上好");
Log信息

 V/学生小明: 语文老师说:记得写作业
 V/学生小王: 语文老师说:记得写作业
 V/学生小明: 数学老师说:同学们早上好
 V/学生小王: 数学老师说:同学们早上好


0 0