`
gatusso52
  • 浏览: 112293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

观察者模式总结

阅读更多

1  一对多关系。一个被观察者,n个观察者。

解耦,此时被观察者不需要知道都有哪些观察者,观察者也不需知道被观察者究竟是谁。

(能够解耦的原因:程序依赖于抽象,而不是相互依赖)


2 一般实现:

Observer接口、Subject接口,ObserverImpl实现(多个实例,甚至可以多个子类)、SubjectImpl实现(单个)

其中:

Subject接口:regist(),unRegist(),notifyAllRegistor()

Observe接口:doSomething()

在notifyAllRegistor()中调用所有注册了的observer的doSomething方法jike


3 java实现:

java.util.Observer接口 和 java.util.Observable接口

其中

java.util.Observable:addObserver(),deleteObserver(),notificateObservers()

java.util.Observer:update(Observable ob,Object arg)

 

4 spring实现:

<bean id="observer1" class="MyObserver"/>  
<bean id="observer2" class="MyObserver"/>    
<bean id="subject1" class="MySubject"/>  
  
<bean id="subject"  
       class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">  
       <property name="targetObject"><ref local="subject1"/></property>  
       <property name="targetMethod"><value>addObserver</value></property>  
       <property name="arguments">  
         <list>  
            <ref bean="observer1"/>  
          <ref bean="observer2"/>  
         </list>  
      </property>  
</bean>
 

 

分享到:
评论

相关推荐

    深入浅出设计模式之观察者模式总结(二)附例子

    **观察者模式**是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这个模式在各种编程语言中都有广泛应用,包括Java、C#...

    Qt设计模式之观察者模式

    总结来说,Qt的观察者模式通过信号和槽机制实现了对象间的解耦,使得代码更加模块化,同时也提供了强大的事件处理能力。理解和熟练掌握这一模式,对于编写高效、可维护的Qt应用至关重要。无论是简单的用户界面交互,...

    设计模式-观察者模式(讲解及其实现代码)

    总结来说,观察者模式是一种重要的设计模式,它允许对象在状态改变时自动通知其他对象,从而降低了系统各部分之间的耦合度,提高了代码的灵活性和可扩展性。在实际项目中,正确使用观察者模式可以有效地管理组件间的...

    设计模式-观察者

    7. **其他变体**:除了基本的观察者模式,还有复合观察者模式,允许一个观察者对象包含多个观察者,以及异步观察者模式,通知过程在不同的线程中执行,以避免阻塞主线程。 在实际开发中,理解并熟练运用观察者模式...

    观察者模式练习

    总结起来,观察者模式是一种强大的设计模式,它使得对象之间的交互更加灵活,减少了耦合,提高了系统的可维护性和可扩展性。在Java中,通过内置的`Observable`和`Observer`类,可以轻松实现和使用观察者模式。在...

    观察者模式源码

    观察者模式(Observer Pattern)是软件设计模式的一种,属于行为型模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,观察者模式主要通过...

    一个类实现Android观察者模式(最简单实用的观察者模式)

    观察者模式是软件设计模式中的一种行为模式,它在Android开发中被广泛应用,尤其是在处理事件响应和组件间的通信。这个模式允许对象订阅另一个对象的状态变化,当被观察的对象发生改变时,所有订阅者都会被通知并...

    观察者模式的一个应用

    ### 观察者模式概述与应用 #### 一、观察者模式定义 观察者模式是一种常用的软件设计模式,主要用于处理对象间的依赖关系。在这种模式下,一个对象(称为“主题”或“被观察者”)负责维护一组依赖于它的对象...

    观察者模式示例源代码

    观察者模式,也被称为发布...总结来说,观察者模式是一种强大的设计模式,它能够帮助我们构建响应式和灵活的系统。通过学习和理解这个模式的实现,我们可以更好地理解和应用到实际项目中,提高代码的可维护性和扩展性。

    观察者模式框架

    ### 观察者模式框架详解 #### 一、观察者模式概述 观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象间的一种一对多依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并...

    设计模式之观察者模式(Observer Pattern)

    总结来说,观察者模式是一种强大的设计工具,它促进了对象间的解耦,使得系统更加灵活且易于维护。通过使用观察者模式,我们可以创建出响应性强、可扩展性好的软件系统。在阅读和分析提供的压缩包文件内容后,可以更...

    观察者模式以及在Android开发中的应用

    总结起来,观察者模式在Android开发中主要体现在BroadcastReceiver和ContentObserver的使用上,它们帮助开发者实现组件间的通信和数据同步,提高了代码的灵活性和可维护性。通过ContentProvider,Android提供了一个...

    观察者模式编写的股票分析程序

    总结来说,"观察者模式编写的股票分析程序"利用了观察者模式来处理股票价格的实时更新,通过定义主题和观察者的交互,实现了股票价格变动时自动通知相关组件的功能,从而提供了一种灵活且高效的数据同步机制。

    观察者模式和策略模式举例

    总结来说,观察者模式和策略模式是面向对象设计的重要工具,它们分别解决了实时响应变化和动态选择算法的问题。在实际开发中,灵活运用这两种模式可以提高代码的可读性、可维护性和可扩展性,为软件开发带来诸多便利...

    java设计模式之观察者模式

    总结一下,观察者模式在Java编程中扮演着关键角色,它允许我们构建松耦合的系统,使得代码更加灵活。通过理解和熟练运用观察者模式,开发者能够编写出更具可维护性和可扩展性的代码。在给定的压缩包文件中,可能包含...

    观察者模式框架2

    ### 观察者模式框架2 #### 概述 观察者模式是一种常用的设计模式,在软件工程领域被广泛采用。该模式定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。...

    Java 观察者模式的浅析

    ### Java观察者模式详解 #### 一、观察者模式概述 观察者模式是一种常用的设计模式,主要用于处理对象间的一对多依赖关系。当一个对象(主题)的状态发生变化时,所有依赖于它的对象(观察者)都会收到通知并自动...

    基于观察者模式两个activity通信

    总结一下,观察者模式提供了一种灵活的解耦方式,使得Activity A和C可以独立地工作,同时保持通信的高效性。通过定义自定义的`Observer`和`Observable`,我们可以轻松地在Android应用中实现Activity间的通信,特别是...

Global site tag (gtag.js) - Google Analytics