public class B implements BI{
AInfterface a;
public B(AInfterface a){
this.a = a
}
public void invoke(){
/** ...*/
}
}
BI b = new B(new A());//需要在生成B實例之前 生成A等實例
b. invoke();
使用Ioc容器(Jdon框架)的革命調用方式:
BI b = (BI) WebAppUtil.getService(“b”);
b. invoke();
<app>
<services>
<pojoService name="b" class="test.B"/>
<pojoService name="a" class="test.A"/>
<pojoService name="c" class="test.C"/>
</services>
</app>
注意:雖然B類代碼調用了A類(甚至可能調用C等其他類),但是在配置中我們無需考慮這種調用關系。因此,整個環節我們都無需考慮B類中涉及其他類的調用關系;這樣是非常省時省力的;特別是如果項目較大,JavaBeans特別多,又是多人協調開發,這種方式對提高開發效率;降低出錯率是非常大的幫助。
如果你的項目中有非常多的類;調用關系很復雜,而且調用關系隨時都可能變化,那麼,使用無需照顧調用關系的Ioc容器無疑是減輕開發負擔的首選。
ioc容器另外一個著名實現是Spring框架,但是在Spring的配置文件applicationContext.xml中,我們必須考慮上述調用關系:
<bean id="b" class="test.B">
<property name="a"><ref bean="a"/></property><!-- 必須指定調用關系 -->
....
</bean>
<bean id="a" class="test.A">
<bean id="c" class="test.C">
[返回首頁]