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"
[返回首页]