spring ioc的最大特点是依赖注入,对于observer pattern来说,使用spring框架最大的麻烦在于registerObserver的时候,需要双方的class都已经构造成功,而且spring的配置都应当是基于接口的(否则在aop配置transaction的时候会抛异常),因此如何方便的配置是应用observer pattern的关键。
首先编写observer pattern的基础类:
java 代码
- public interface Observer {
- public void update(Object arg);
- }
-
- public class Subject {
- private List<Observer> observerList=new ArrayList<Observer>();
- public void notifyObservers(Object arg) {
- for (Observer ob: observerList) {
- ob.update(arg);
- }
- }
-
- public void registerObserver(Observer observer) {
- observerList.add(observer);
- }
- }
在appfuse中,所有的service类都是继承了BaseManager,我就让BaseManager extends Subject,这样所有的manager就可以很方便的增加observer了。
编写类实现observer接口。在manager类适当的位置增加notifyObservers()方法。
最后,在配置文件中,使用如下的配置来完成observer的注册:
xml 代码
- <bean id="registerAreaObjserver"
- class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
- <property name="targetObject"><ref local="areaManager"/></property>
- <property name="targetMethod"><value>registerObserver</value></property>
- <property name="arguments">
- <list>
- <ref bean="observerClass"/>
- </list>
- </property>
- </bean>
这种配置的方法又简洁又清晰,而且非常符合DI精神,这样就可以随时关联适当的subject/observer了。
分享到:
相关推荐
以上11种设计模式在Spring框架中起到了关键作用,它们使得Spring具有高度的灵活性、可扩展性和模块化。通过学习这些模式,开发者不仅可以更好地理解Spring的运作机制,也能在自己的项目中更有效地应用设计模式,提升...
在Spring框架中,例如`Adapter`接口的实现就是典型的适配器模式应用。 #### 四、Spring框架的优势 1. **非侵入式设计**:Spring框架的设计尽可能避免对应用代码造成影响,使开发者可以专注于业务逻辑的编写。 2. *...
在企业级开发中,Spring 框架提供了一整套的解决方案,包括IOC容器、AOP、MVC 等,可以帮助开发者快速构建高质量的企业级应用程序。同时,Spring 的设计模式也提供了一个良好的实践,帮助开发者编写高质量的代码。
在Spring框架中,代理模式被广泛应用于AOP(面向切面编程)中。例如,当使用Spring AOP时,可以通过代理来实现横切关注点(如日志记录、安全检查等),从而实现业务逻辑与非业务逻辑的解耦。 #### 四、单例模式...
在Java开发领域,SpringBoot框架因其简洁高效的特性,已经成为企业级应用开发的首选。与此同时,设计模式作为软件工程中的重要理论,是提升代码质量和可维护性的基石。本资料集合了"SpringBoot-DesignMode-master....
设计模式是软件工程中的重要概念,本软件运用了观察者模式(Observer Pattern)。观察者模式是一种行为设计模式,用于定义对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动...
此外,现代的Java框架,如Spring框架,提供了更为强大和灵活的事件监听机制,这些机制背后同样运用了观察者模式的思想。 总结来说,设计模式是软件开发中的一种非常有价值的工具。它通过提供一种通用的解决方案框架...
具体到Java实现,可以利用Spring框架(标签中提及的"spring"可能与此有关)的灵活性,构建组件间的依赖关系,模拟Mass-Spring-Damper系统。例如,使用观察者模式(Observer Pattern)来实现质量之间的交互,使用策略...
在Spring框架中,事件处理是一种重要的组件间通信方式。它允许一个对象在完成特定操作后,通知其他对象这一事实,而无需这些对象之间有直接的依赖关系。这种机制基于Java的观察者模式(Observer Pattern),使得松...
在Spring框架中,事件管理是一种强大的机制,它允许在应用程序组件之间传递消息,而无需这些组件之间有直接的依赖关系。这种松耦合的方式提高了代码的可维护性和可测试性。接下来,我们将深入探讨Spring事件管理的...
观察者设计模式(Observer Design Pattern)是软件设计模式中的一种行为模式,它在对象之间定义了一种一对多的依赖关系,使得每当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,...
在 Java 开发中,常用的设计模式包括工厂模式(Factory Pattern)、单例模式(Singleton Pattern)、观察者模式(Observer Pattern)、装饰器模式(Decorator Pattern)、代理模式(Proxy Pattern)和建造者模式...
- Spring框架中的事件驱动机制,通过ApplicationEvent和ApplicationListener实现观察者模式,使得组件之间可以解耦地传递事件。 - Android中的BroadcastReceiver,允许应用注册接收系统广播,当特定事件发生时,广播...
- 框架和库中的状态监听,例如Spring框架中的事件机制。 5. **源码分析** `java.util.Observable`类维护了一个`Observer`对象的集合,`setChanged()`用于标记状态已变,`notifyObservers()`则遍历观察者列表并...
内容涵盖Spring框架的基础配置到高级应用。 - **核心知识点**: - Spring框架的历史背景与发展现状 - IoC容器的配置与管理 - AOP与AspectJ的集成 - 数据访问支持与事务管理 - RESTful Web服务的开发与部署 ###...
- 这种模式在Spring框架中用于实现事件驱动的架构。 4. **事件驱动系统**: - 在事件驱动系统中,当特定事件发生时,如游戏角色的位置变化,触发相应的回调函数并通知所有注册的观察者。 - 这种模式常见于游戏...
例如,Spring框架中的ApplicationEventPublisher接口,允许应用程序在运行时发布自定义事件,而感兴趣的组件可以作为事件监听器进行注册。通过对这类源码的阅读和分析,我们可以更深入地理解观察者模式在实际系统中...
MVC(Model-View-Controller)设计模式是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)...在实际应用中,开发者需要根据项目的具体需求,合理运用各种设计模式,以实现最佳的MVC架构。
在源码中,可能会运用到如工厂模式(Factory Pattern)用于创建对象,单例模式(Singleton Pattern)确保类只有一个实例,观察者模式(Observer Pattern)用于实时更新数据变化等。这些设计模式的运用,使得系统结构...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动编程,使得多...