应用场景
一对多依赖关系。一个对象状态发生改变,通知观察者去做更新。
使用方法
观察者模式为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/学生小王: 数学老师说:同学们早上好