2. IOC

來源:互聯網
上載者:User

標籤:style   java   color   使用   檔案   art   

  IOC(Inversion of Control,控制反轉):所謂控制反轉,就是將執行個體化對象的權利交給Spring容器 .另外一點,Spring主張面向介面編程,這樣就是一種松耦合性編程體現. 

   假設現在有Profession這樣一個介面,在其下可以有Programmer,Art,Marketing等等一系列的實作類別. 如果現在一個Service當中對其進行引用而且不用這種控制反轉的思想的話:

     class Service {

              Profession p=new Programmer();

     }

  這樣一個這樣的Profession只能接收一個具體的實現. 這樣的話這個Service就對這個具體的Programmer產生了強烈的依賴性,如果後期我要用到另一個實現Marketing時,這是只能更改代碼.如果使用了控制反轉的話:

   class  Service {

          Profession p;

   }

  僅僅這樣就夠了,剩下的對象的執行個體化和對象關係的確定,都是由Spring容器進行管理的.這樣就減小了類與類之間的耦合度 . 具體的做法就是在xml檔案對這種關係進行配置.對於bean的配置用的是標籤<bean>,對於簡單的屬性用的是<property>.

  <bean id="pro1" class="feijishuo.test.ioc.Programmer">

     <property name="instrument" value="computer" />

  </bean>

  這樣就配置了一個具有一台電腦的一個程式員.

  這名程式要在一個平台上才能展現自己,因此將其放到Service平台上讓其盡情的施展自己的才能.一個Bean對另一個Bean進行引用用ref.

  <bean id="service" class="feijishuo.test.ioc.Service">

      <property name="company" value="Game Company" />

      <property name="pro1" ref="pro1" />

  </bean>

 

 對於一個遊戲公司而言不可能只有程式員,還得有Art,Marketing等等. Spring在裝配集合類型時提供了list,set,map,props .

 <list>和<set>當屬性是array或者是一些java.util.Collection時候非常有用.

 <map>和<props>,對應的是java.util.Map和java.util.Properties. 兩者唯一的不同就是<props>要求索引值都是String.<map>則沒有要求.

 <bean id="service" class="feijishuo.test.ioc.Service">

    <property name="company" value="Game Company" />

    <list>

        <ref bean="art" />

        <ref bean="programmer" />

        <ref bean="marketing" />

    </list>

 </bean>

 

現在對這個遊戲公司的各個部門進行介紹:

<bean id="service" class="feijishuo.test.ioc.Service">

    <property name="company" value="Game Company" />

   <map>

        <entry key="program" value-ref="click" />

        <entry key="art" value-ref="pic" />

        <entry key="market" value-ref="talk" />

   </map>

</bean>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.