在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的調(diào)用就不需要了,當(dāng)你把這個subject注入到你需要的類中時,這個被觀察者就自動擁有了她所需要的觀察者了,確實很方便