乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Ioc容器的革命性優(yōu)點

       五虎斷門刀 2006-11-16

      Ioc容器的革命性優(yōu)點

      板橋里人 http://www. 2005/08/06

        我們知道,在Java基本教程中有一個定律告訴我們:所有的對象都必須創(chuàng)建;或者說:使用對象之前必須創(chuàng)建,但是現(xiàn)在我們可以不必一定遵循這個定律了,我們可以從Ioc容器中直接獲得一個對象然后直接使用,無需事先創(chuàng)建它們。

        這種變革,就如同我們無需考慮對象銷毀一樣;因為Java的垃圾回收機制幫助我們實現(xiàn)了對象銷毀;現(xiàn)在又無需考慮對象創(chuàng)建,對象的創(chuàng)建和銷毀都無需考慮了,這給編程帶來的影響是巨大的。

        我們從一個簡單例子開始,有一個普通類B代碼如下:

      public class B implements BI{

          AInfterface a;

          public B(AInfterface a){

            this.a = a

          }

          public void invoke(){

            /** ...*/

          }

      }

       

       

        有兩種使用B的方式:

        普通無Ioc容器的調(diào)用方式:
        BI b = new B(new A());//需要在生成B實例之前 生成A等實例
        b. invoke();

        使用Ioc容器(Jdon框架)的革命調(diào)用方式:
        BI b = (BI) WebAppUtil.getService(“b”);
        b. invoke();

        上面兩種方式重要區(qū)別:
        前者需要照顧B類中A類的實例化,如果B類中調(diào)用不只A類一個,還有更多其他類如C/D/E等類,這樣,你在使用B類時,還需要研究其他類的創(chuàng)建,如果C/D/E這些類不是你自己編寫,你還需要翻閱它們的API說明,研究它們應(yīng)該如何創(chuàng)建?是使用New 還是工廠模式 還是單態(tài)調(diào)用?

        這時,你會感嘆:哇,有沒有搞錯?我只不過是為了使用B類中一個小小的方法,就花去我這么多時間和精力?

        當(dāng)我們使用第二種方式時,就無需花很多精力和時間考慮A/C/D/E等類的創(chuàng)建。

        使用Ioc容器,你再也不必做這些僵化愚蠢的工作了,我們只需從ioc容器中抓取一個類然后直接使用它們。

        當(dāng)然,在使用之前,我們需要做一個簡單的配置,把你將來需要使用的類全部告訴ioc容器,例如Jdon框架的ioc容器配置jdonframework.xml如下:

      <app>
        <services>
          <pojoService name="b" class="test.B"/>
          <pojoService name="a" class="test.A"/>
          <pojoService name="c" class="test.C"/>

        </services>
      </app>

        注意:雖然B類代碼調(diào)用了A類(甚至可能調(diào)用C等其他類),但是在配置中我們無需考慮這種調(diào)用關(guān)系。因此,整個環(huán)節(jié)我們都無需考慮B類中涉及其他類的調(diào)用關(guān)系;這樣是非常省時省力的;特別是如果項目較大,JavaBeans特別多,又是多人協(xié)調(diào)開發(fā),這種方式對提高開發(fā)效率;降低出錯率是非常大的幫助。

        如果你的項目中有非常多的類;調(diào)用關(guān)系很復(fù)雜,而且調(diào)用關(guān)系隨時都可能變化,那么,使用無需照顧調(diào)用關(guān)系的Ioc容器無疑是減輕開發(fā)負擔(dān)的首選。

        ioc容器另外一個著名實現(xiàn)是Spring框架,但是在Spring的配置文件applicationContext.xml中,我們必須考慮上述調(diào)用關(guān)系:

      <bean id="b" class="test.B">
        <property name="a"><ref bean="a"/></property><!-- 必須指定調(diào)用關(guān)系 -->
        ....
      </bean>
      <bean id="a" class="test.A">
      <bean id="c" class="test.C">

        所以,從以上對比來看,從項目開發(fā)效率角度看,基于PiocContainer實現(xiàn)的Jdon框架在實際使用配置效率無疑要高于Spring框架。

        同時,也可以說:基于PiocContainer實現(xiàn)的Jdon框架完全真正實現(xiàn)了Ioc容器的革命性優(yōu)點:顛覆了“使用對象之前必須創(chuàng)建” 的基本Java語言定律

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多