`

设计模式的理解--观察者模式

    博客分类:
  • OOD
 
阅读更多

观察者模式:

 

定义了对象之间一对多依赖,当一个对象改变状态时,它所有依赖都者会得到通知。



 个人理解:

时常会用到对某个对象的监控,如属性变化时得到被观察者得知:

publicvoid setName(String newName) {//可以使用代理

monitorA.propertyChange("name",this.name,newName);

monitorB.propertyChange("name",this.name,newName);

monitorC.propertyChange("name",this.name,newName);

this.name = name;

}

publicvoid deletePerson(Person person){//可以使用代理

monitorM.entityDelete(person);

monitorN.entityDelete(person);

monitorL.entityDelete(person);

}

这样导至当前类与需要被通知的N个观察者之间耦合,当增加或移除被观察者时,就需要修改当前代码,当观察者的观察对象(方法及参数)变化时,当前类也要调整。

 

按照封状变化及最少耦合原则:

 

 

1.每个观察者关注的东西是不确定的(方法参数),可以封状成为接口,具体变化实现该接口

2.观察者类型是变化的,进行统一抽取形成接口

3.观察者数量是变化的,抽成方法可以任意添加和删除观察者

4.当前类只关心谁能帮他将变化的事件发送出去,而不关心有多少观察者

 

 

 

 



 观察者模式是为了解耦,使状态发生类与观察者类之间少耦合,耦合时尽量少的了解对方

  • 大小: 94.5 KB
  • 大小: 139.6 KB
分享到:
评论

相关推荐

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 观察者模式(Observer):定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式(State):允许对象在其内部状态改变时改变它的行为。 - ...

    C++设计模式--观察者模式 demo

    首先,我们需要理解观察者模式的基本组件: 1. **主体(Subject)**:这是被观察的对象,它保存了一个观察者列表,并提供添加、删除观察者以及通知观察者的接口。在C++中,主体通常是一个抽象类,包含`addObserver`...

    设计模式---观察者模式

    首先,我们要理解观察者模式的核心概念。在观察者模式中,存在两个主要角色:主题(Subject)和观察者(Observer)。主题是被观察的对象,它保存了一组观察者,并提供添加、删除观察者以及通知它们状态改变的方法。...

    C++设计模式--基于Qt4开源跨平台开发框架

    通过学习《C++设计模式--基于Qt4开源跨平台开发框架》,开发者不仅可以掌握设计模式的本质和应用场景,还能深入理解Qt4框架的强大功能。结合两者,能够提高代码质量,降低维护成本,同时实现高效且可靠的跨平台应用...

    设计模式-观察者模式-作业-observer.zip

    观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...

    设计模式--观察者 c++版本

    观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心思想是主体(Subject)与观察者(Observer)之间的...

    设计模式-观察者

    《设计模式——观察者》 ...在实际开发中,理解并熟练运用观察者模式能够帮助我们构建更稳定、可维护的系统。无论是简单的用户界面交互,还是复杂的业务逻辑处理,观察者模式都能提供一种有效的解耦方案。

    设计模式课件大全

    PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML ...设计模式15-观察者模式、状态模式 设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。

    设计模式实现——观察者模式

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现发布-订阅...

    HeadFirst 设计模式学习笔记2--观察者模式 demo

    总的来说,HeadFirst设计模式的学习笔记2关于观察者模式的演示,旨在帮助开发者理解如何使用观察者模式来构建可扩展的系统。通过实际的代码示例,我们可以更深入地掌握这一模式,并将其应用到日常开发中,提升代码的...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(...观察者模式(Observer Pattern)、责任链模式(Chain of Responsibility Pattern)、访问者模式(Visitor Pattern)、状态模式(State ...

    设计模式专题之(十八)观察者模式---设计模式观察者模式示例代码(python--c++)

    观察者模式是软件设计模式中的一种行为模式,它允许一个对象,称为"主题",维护一个依赖于它的对象列表,这些对象被称为"观察者"。当主题的状态发生改变时,它会通知所有观察者,使它们能够自动更新自己。这种模式在...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    本文旨在深入解析这些设计模式,并通过C++实现来帮助读者更好地理解和应用这些模式。 #### 1. 创建型模式 创建型模式关注的是对象的创建机制,它们使得系统能够独立于如何创建、组合这些对象。 - **1.1 Factory...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    - 观察者模式(Observer):定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式(State):允许一个对象在其内部状态改变时改变它的行为,...

    Java设计模式----通俗易懂版

    - 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式:允许对象在其内部状态改变时改变它的行为,看起来好像对象改变了它的...

    跟我一起学 设计模式-观察者模式

    观察者模式,也称为发布-订阅模式或事件驱动模式,是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 在C#、ASP.NET等.NET框架中,...

    设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版

    - 观察者模式:定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式:允许对象在其内部状态改变时改变其行为,看起来像是改变了其类。 - 策略...

    JAVA设计模式--程序设计--反射--注解--泛型

    设计模式包括创建型模式(如单例、工厂方法、抽象工厂等)、结构型模式(如适配器、装饰器、代理等)和行为型模式(如策略、观察者、职责链等)。这些模式提供了良好的可复用性和可扩展性,帮助开发者遵循“开闭原则...

Global site tag (gtag.js) - Google Analytics