get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是打破Java定律:无需创建对象--Ioc容器革命,一起来学习了解下吧!
【 tulaoshi.com - 编程语言 】
我们知道,在Java基本教程中有一个定律告诉我们:所有的对象都必须创建;或者说:使用对象之前必须创建,但是现在我们可以不必一定遵循这个定律了,我们可以从Ioc容器中直接获得一个对象然后直接使用,无需事先创建它们。这种变革,就如同我们无需考虑对象销毁一样;因为Java的垃圾回收机制帮助我们实现了对象销毁;现在又无需考虑对象创建,对象的创建和销毁都无需考虑了,这给编程带来的影响是巨大的。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"
[返回首页]
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)来源:http://www.tulaoshi.com/n/20160219/1600499.html
看过《打破Java定律:无需创建对象--Ioc容器革命》的人还看了以下文章 更多>>