在spring中使用观察者模式的方法如下(想想还是补全面一点好,呵呵)
- <bean id="mailObserver" class="MailObserver"/>
-
- <bean id="jmsObserver" class="JMSObserver"/>
-
- <bean id="subjectTarget" class="Subject"/>
-
- <bean id="subject"
- class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
- <property name="targetObject"><ref local="subjectTarget"/></property>
- <property name="targetMethod"><value>addObserver</value></property>
- <property name="arguments">
- <list>
- <ref bean="mailObserver"/>
- <ref bean="jmsObserver"/>
- </list>
- </property>
- </bean>
<bean id="mailObserver" class="MailObserver"/> <bean id="jmsObserver" class="JMSObserver"/> <bean id="subjectTarget" class="Subject"/> <bean id="subject" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetObject"><ref local="subjectTarget"/></property> <property name="targetMethod"><value>addObserver</value></property> <property name="arguments"> <list> <ref bean="mailObserver"/> <ref bean="jmsObserver"/> </list> </property> </bean>
正如正文末尾所说,这样配置之后,代码中的那些addObserver的调用就不需要了,当你把这个subject注入到你需要的类中时,这个被观察者就自动拥有了她所需要的观察者了,确实很方便