观察者模式
1.定义
定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖与它的对象都能得到通知并被自动更新。
2.示例代码
/*目标对象,它知道观察它的观察者,提供注册和删除观察者的接口*/ public class Subject{ /*用来保存注册的观察者对象*/ private List<Observer> observers = new ArrayList<Observer>(); /*注册观察者*/ public void attach(Observer observer){ observers.add(observer); } /*删除观察者*/ pubic void detach(Observer observer){ observers.remove(observer); } /*通知所有注册的观察者对象*/ protected void notifyObservers(){ for(Observer observer){ observer.update(this); } } } /*具体目标对象的定义*/ public class ConceteSubject extends Subject{ /*示意目标对象的状态*/ private String subjectState; public String getSubjectState(){ return subjectState; } public void setSubjectState(String subjectState){ this.subjectState = subjectState; //目标对象发生了改变,通知观察者 this.notifyObservers(); } }
/*观察者接口定义*/ public interface Observer{ /*更新的接口,同步目标对象状态*/ public void update(Subject subject); } /*具体观察者实现*/ public class ConcreteObserver implements Observer{ /*示意观察者的状态*/ private String observerState; public String getObserverState(){ return observerState; } public void update(Subject subject){ observerState = (ConcreteSubject)subject.getSubjectState(); } }
/*客户端调用示意*/ public class Client{ public static void main(String args[]){ //创建被观察者对象 ConcreteSubject subject = new ConcreteSubject (); //创建观察者对象 Observer observer1 = new ConcreteObserver(); Observer observer2 = new ConcreteObserver(); Observer observer3 = new ConcreteObserver(); //注册观察者 subject.attach(observer1); subject.attach(observer2); subject.attach(observer3); //改变被观察者状态 subject.setSubjectState("1"); //取得被观察者状态 System.out.println("observer1 = " + observer1.getObserverState()); System.out.println("observer2 = " + observer2.getObserverState()); System.out.println("observer3 = " + observer3.getObserverState()); } }
3.实际应用
观察者模式实现了观察者和目标对象之间的抽象耦合,实现了动态联动,支持广播通信。
观察者模式的本质:触发联动
相关推荐
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
Android设计模式--观察者模式DEMO 观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它在C++中的应用广泛且实用。这种模式的核心思想是“主体”(Subject)与“观察者”(Observer)之间的松耦合关系,允许一个对象(即主体)的状态...
观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心思想是主体(Subject)与观察者(Observer)之间的...
观察者模式(Observer Pattern)是行为设计模式的一种,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心思想是发布-订阅模型,其中...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
JAVA-设计模式-行为型模式-观察者模式
观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以及时地在对象之间传播状态变化。在Java中,观察者模式常用于构建事件驱动系统,使得多个对象能够监听并响应某个对象的状态改变。 首先,我们要理解...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于实现事件驱动的系统或者...
观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...
- 观察者模式(Observer):定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式(State):允许对象在其内部状态改变时改变它的行为。 - ...
观察者模式,也称为发布-订阅模式或事件驱动模式,是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 在C#、ASP.NET等.NET框架中,...
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML ...设计模式15-观察者模式、状态模式 设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。
观察者模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在构建可扩展和可维护的系统时。HeadFirst的设计模式系列书籍以其直观易懂的方式深受程序员喜爱,本笔记将深入探讨观察者模式的概念...
观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计中的一种行为模式。这个模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在本文...
总结来说,观察者模式是一种重要的设计模式,它允许对象在状态改变时自动通知其他对象,从而降低了系统各部分之间的耦合度,提高了代码的灵活性和可扩展性。在实际项目中,正确使用观察者模式可以有效地管理组件间的...
观察者模式是一种软件设计模式,它允许对象在状态发生改变时通知其依赖的其他对象,以便这些对象可以相应地更新自身。这种模式是基于发布-订阅原则,即一个主题(Subject)可以拥有多个订阅者(Observer),当主题的...
《C++设计模式--基于Qt4开源跨平台开发框架》一书主要探讨了如何在C++编程中利用设计模式,并结合Qt4框架进行高效的跨平台应用开发。设计模式是软件工程中的重要概念,它们是经过时间和实践验证的解决特定问题的模板...
结合微信公众号讲解观察者模式,生动形象,关键是上手快啊