首页 > 代码库 > 观察者模式
观察者模式
一、模式动机
建立一种对象与对象之间的依赖关系,一个对象发生变化时将自动通知其他对象,其他对象将相应做出反应。发生改变的对象称为观察目标,而被通知的对象称为观察者。
二、模式定义
观察者模式(Observer Pattern):定义了对象间一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。
三、模式结构
四、模式分析
1)观察者模式描述了如何建立对象与对象之间的依赖关系。
2)这一模式中的关键对象是观察目标和观察者,一个目标可以有多个观察者,当观察目标的状态发生变化时,所有的观察者都将得到通知。
3)观察者得到通知后,即时更新自己的状态,与观察目标同步。
五、模式代码
1)抽象目标类
public abstract class Subject { protected ArrayList observers =new ArrayList();//观察者数组 public abstract void attach(Observer1 observer);//添加观察者 public abstract void detach(Observer1 observer);//删除观察者 public abstract void nontify();//通知观察者 }2)具体目标类
public class ConcreteSubject extends Subject { //private Observer1 observer; public void attach(Observer1 observer){ observers.add(observer); } public void detach(Observer1 observer){ observers.remove(observer); } public void nontify() { //使用for遍历循环通知所有观察者 for(Object obs:observers){ ((Observer1)obs).update(); } } }3)抽线观察者
public interface Observer1 { public void update(); }4)具体观察者
public class ConcreteObserver implements Observer1 { public void update() { //更新相关方法 } }
观察者模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。