`

observer pattern在spring框架中的应用

    博客分类:
  • web
阅读更多

spring ioc的最大特点是依赖注入,对于observer pattern来说,使用spring框架最大的麻烦在于registerObserver的时候,需要双方的class都已经构造成功,而且spring的配置都应当是基于接口的(否则在aop配置transaction的时候会抛异常),因此如何方便的配置是应用observer pattern的关键。

首先编写observer pattern的基础类:

java 代码
  1. public interface Observer {   
  2.     public void update(Object arg);   
  3. }   
  4.   
  5. public class Subject {   
  6.     private List<Observer> observerList=new ArrayList<Observer>();   
  7.     public void notifyObservers(Object arg) {   
  8.         for (Observer ob: observerList) {   
  9.             ob.update(arg);   
  10.         }   
  11.     }   
  12.        
  13.     public void registerObserver(Observer observer) {   
  14.         observerList.add(observer);   
  15.     }   
  16. }  

在appfuse中,所有的service类都是继承了BaseManager,我就让BaseManager extends Subject,这样所有的manager就可以很方便的增加observer了。

编写类实现observer接口。在manager类适当的位置增加notifyObservers()方法。

最后,在配置文件中,使用如下的配置来完成observer的注册:

xml 代码
  1. <bean id="registerAreaObjserver"    
  2.       class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">  
  3.       <property name="targetObject"><ref local="areaManager"/></property>  
  4.       <property name="targetMethod"><value>registerObserver</value></property>  
  5.       <property name="arguments">  
  6.       <list>  
  7.         <ref bean="observerClass"/>  
  8.       </list>  
  9.       </property>  
  10.     </bean>  
这种配置的方法又简洁又清晰,而且非常符合DI精神,这样就可以随时关联适当的subject/observer了。
分享到:
评论

相关推荐

    86丨开源实战四(下):总结Spring框架用到的11种设计模式1

    以上11种设计模式在Spring框架中起到了关键作用,它们使得Spring具有高度的灵活性、可扩展性和模块化。通过学习这些模式,开发者不仅可以更好地理解Spring的运作机制,也能在自己的项目中更有效地应用设计模式,提升...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版).pdf

    在Spring框架中,例如`Adapter`接口的实现就是典型的适配器模式应用。 #### 四、Spring框架的优势 1. **非侵入式设计**:Spring框架的设计尽可能避免对应用代码造成影响,使开发者可以专注于业务逻辑的编写。 2. *...

    Java EE设计模式:Spring企业级开发最佳实践

    在企业级开发中,Spring 框架提供了一整套的解决方案,包括IOC容器、AOP、MVC 等,可以帮助开发者快速构建高质量的企业级应用程序。同时,Spring 的设计模式也提供了一个良好的实践,帮助开发者编写高质量的代码。

    Spring 5 Design Patterns.pdf

    在Spring框架中,代理模式被广泛应用于AOP(面向切面编程)中。例如,当使用Spring AOP时,可以通过代理来实现横切关注点(如日志记录、安全检查等),从而实现业务逻辑与非业务逻辑的解耦。 #### 四、单例模式...

    SpringBoot-DesignMode-master.zip

    在Java开发领域,SpringBoot框架因其简洁高效的特性,已经成为企业级应用开发的首选。与此同时,设计模式作为软件工程中的重要理论,是提升代码质量和可维护性的基石。本资料集合了"SpringBoot-DesignMode-master....

    SPRING组装的断点续转下载软件

    设计模式是软件工程中的重要概念,本软件运用了观察者模式(Observer Pattern)。观察者模式是一种行为设计模式,用于定义对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动...

    Java design pattern

    此外,现代的Java框架,如Spring框架,提供了更为强大和灵活的事件监听机制,这些机制背后同样运用了观察者模式的思想。 总结来说,设计模式是软件开发中的一种非常有价值的工具。它通过提供一种通用的解决方案框架...

    Mass-Spring-Damper Systems.zip,这是一份不错的文件

    具体到Java实现,可以利用Spring框架(标签中提及的"spring"可能与此有关)的灵活性,构建组件间的依赖关系,模拟Mass-Spring-Damper系统。例如,使用观察者模式(Observer Pattern)来实现质量之间的交互,使用策略...

    spring事件的例子

    在Spring框架中,事件处理是一种重要的组件间通信方式。它允许一个对象在完成特定操作后,通知其他对象这一事实,而无需这些对象之间有直接的依赖关系。这种机制基于Java的观察者模式(Observer Pattern),使得松...

    Spring事件管理

    在Spring框架中,事件管理是一种强大的机制,它允许在应用程序组件之间传递消息,而无需这些组件之间有直接的依赖关系。这种松耦合的方式提高了代码的可维护性和可测试性。接下来,我们将深入探讨Spring事件管理的...

    Observer2DesignPattern

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

    互联网高频Java后端面试题20道(适合1~3年)V1.0.35.docx

    在 Java 开发中,常用的设计模式包括工厂模式(Factory Pattern)、单例模式(Singleton Pattern)、观察者模式(Observer Pattern)、装饰器模式(Decorator Pattern)、代理模式(Proxy Pattern)和建造者模式...

    设计模式学习之Observer(观察者模式)

    - Spring框架中的事件驱动机制,通过ApplicationEvent和ApplicationListener实现观察者模式,使得组件之间可以解耦地传递事件。 - Android中的BroadcastReceiver,允许应用注册接收系统广播,当特定事件发生时,广播...

    设计模式之观察着模式Observer

    - 框架和库中的状态监听,例如Spring框架中的事件机制。 5. **源码分析** `java.util.Observable`类维护了一个`Observer`对象的集合,`setChanged()`用于标记状态已变,`notifyObservers()`则遍历观察者列表并...

    设计模式之观察者模式.pdf

    - 这种模式在Spring框架中用于实现事件驱动的架构。 4. **事件驱动系统**: - 在事件驱动系统中,当特定事件发生时,如游戏角色的位置变化,触发相应的回调函数并通知所有注册的观察者。 - 这种模式常见于游戏...

    观察者模式学习

    例如,Spring框架中的ApplicationEventPublisher接口,允许应用程序在运行时发布自定义事件,而感兴趣的组件可以作为事件监听器进行注册。通过对这类源码的阅读和分析,我们可以更深入地理解观察者模式在实际系统中...

    MVC(单例模式)设计模式

    MVC(Model-View-Controller)设计模式是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)...在实际应用中,开发者需要根据项目的具体需求,合理运用各种设计模式,以实现最佳的MVC架构。

    商业编程-源码-稻草图书管理系统.zip

    在源码中,可能会运用到如工厂模式(Factory Pattern)用于创建对象,单例模式(Singleton Pattern)确保类只有一个实例,观察者模式(Observer Pattern)用于实时更新数据变化等。这些设计模式的运用,使得系统结构...

    观察者模式Demo

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

Global site tag (gtag.js) - Google Analytics