Ioc容器的革命性優(yōu)點(diǎn)板橋里人 http://www. 2005/08/06 我們知道,在Java基本教程中有一個(gè)定律告訴我們:所有的對象都必須創(chuàng)建;或者說:使用對象之前必須創(chuàng)建,但是現(xiàn)在我們可以不必一定遵循這個(gè)定律了,我們可以從Ioc容器中直接獲得一個(gè)對象然后直接使用,無需事先創(chuàng)建它們。 這種變革,就如同我們無需考慮對象銷毀一樣;因?yàn)镴ava的垃圾回收機(jī)制幫助我們實(shí)現(xiàn)了對象銷毀;現(xiàn)在又無需考慮對象創(chuàng)建,對象的創(chuàng)建和銷毀都無需考慮了,這給編程帶來的影響是巨大的。 我們從一個(gè)簡單例子開始,有一個(gè)普通類B代碼如下:
有兩種使用B的方式: 普通無Ioc容器的調(diào)用方式: 使用Ioc容器(Jdon框架)的革命調(diào)用方式: 這時(shí),你會感嘆:哇,有沒有搞錯(cuò)?我只不過是為了使用B類中一個(gè)小小的方法,就花去我這么多時(shí)間和精力? 當(dāng)我們使用第二種方式時(shí),就無需花很多精力和時(shí)間考慮A/C/D/E等類的創(chuàng)建。 使用Ioc容器,你再也不必做這些僵化愚蠢的工作了,我們只需從ioc容器中抓取一個(gè)類然后直接使用它們。 當(dāng)然,在使用之前,我們需要做一個(gè)簡單的配置,把你將來需要使用的類全部告訴ioc容器,例如Jdon框架的ioc容器配置jdonframework.xml如下: <app> 注意:雖然B類代碼調(diào)用了A類(甚至可能調(diào)用C等其他類),但是在配置中我們無需考慮這種調(diào)用關(guān)系。因此,整個(gè)環(huán)節(jié)我們都無需考慮B類中涉及其他類的調(diào)用關(guān)系;這樣是非常省時(shí)省力的;特別是如果項(xiàng)目較大,JavaBeans特別多,又是多人協(xié)調(diào)開發(fā),這種方式對提高開發(fā)效率;降低出錯(cuò)率是非常大的幫助。 如果你的項(xiàng)目中有非常多的類;調(diào)用關(guān)系很復(fù)雜,而且調(diào)用關(guān)系隨時(shí)都可能變化,那么,使用無需照顧調(diào)用關(guān)系的Ioc容器無疑是減輕開發(fā)負(fù)擔(dān)的首選。 ioc容器另外一個(gè)著名實(shí)現(xiàn)是Spring框架,但是在Spring的配置文件applicationContext.xml中,我們必須考慮上述調(diào)用關(guān)系: <bean id="b" class="test.B"> 所以,從以上對比來看,從項(xiàng)目開發(fā)效率角度看,基于PiocContainer實(shí)現(xiàn)的Jdon框架在實(shí)際使用配置效率無疑要高于Spring框架。 同時(shí),也可以說:基于PiocContainer實(shí)現(xiàn)的Jdon框架完全真正實(shí)現(xiàn)了Ioc容器的革命性優(yōu)點(diǎn):顛覆了“使用對象之前必須創(chuàng)建” 的基本Java語言定律 |
|
|