锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲aaaaaa,88av在线,久久久亚洲精华液精华液精华液http://www.aygfsteel.com/alinglau36/category/40302.htmlone platform thousands thinkingzh-cnFri, 03 Dec 2010 11:16:29 GMTFri, 03 Dec 2010 11:16:29 GMT60IoC 渚濊禆娉ㄥ叆銆佷互鍙婂湪Spring涓殑瀹炵幇(杞?http://www.aygfsteel.com/alinglau36/archive/2010/12/02/339623.htmllaulauThu, 02 Dec 2010 09:07:00 GMThttp://www.aygfsteel.com/alinglau36/archive/2010/12/02/339623.htmlhttp://www.aygfsteel.com/alinglau36/comments/339623.htmlhttp://www.aygfsteel.com/alinglau36/archive/2010/12/02/339623.html#Feedback0http://www.aygfsteel.com/alinglau36/comments/commentRss/339623.htmlhttp://www.aygfsteel.com/alinglau36/services/trackbacks/339623.html


     涓鑸殑涔︾睄閮戒細浠嶪oC鍜孉OP寮濮嬩粙緇嶈搗錛岃繖涓狪oC姒傚康錛屼釜浜烘劅瑙夎祫鏂欓噷閮藉啓寰楄浜虹湅寰楁湁浜涚棝鑻︼紝鎵璋揑oC錛屽氨鏄? 鎺у埗鍙嶈漿錛圛nversion of Control錛夌殑緙╁啓錛岃繖涓ぇ瀹墮兘鐭ラ亾錛屼絾鏄釜浜鴻寰楃悊瑙h繖涓蹇碉紝鏈濂藉簲璇ヤ粠渚濊禆錛坉ependence錛夊紑濮嬭璧鳳紝浠ヤ笅瑙傜偣鐢辨灞曞紑錛?br />     鎵璋撲緷璧栵紝涓句釜渚嬪瓙璇存槑錛屼竴涓被Person錛屽彟涓涓被Car錛屽鏋淧erson鐨勬煇涓柟娉曟瘮濡傝drive錛岄渶瑕佸紩鐢–ar錛屽垯縐癙erson綾諱緷璧栦簬 Car綾伙紝寤朵幾鍒板璞★紝榪欑渚濊禆鍏崇郴渚濈劧鎴愮珛錛屾瘮濡傝Person綾葷殑瀵硅薄boy渚濊禆浜嶤ar綾葷殑瀵硅薄toyota銆傚啀璁茶榪欎釜drive鏂規硶鐨勫疄鐜幫紝鍋? 瀹氫唬鐮佸涓嬶細
Public Person{
...
public void drive(){
  Car toyota=new Car("TOYOTA");
  toyota.鎸傛。;
  toyota.韙╂補闂?
  toyota.鎵撴柟鍚?
}
}
    榪欏叾涓殑渚濊禆鍏崇郴錛屽氨瀵艱嚧浜嗗璞oy闇瑕佽礋璐e璞oyota鐨勫垱寤猴紝鐢氳嚦鏄暣涓敓鍛藉懆鏈熺殑綆$悊錛岃岃繖鏍鋒樉鐒朵細甯︽潵鑰﹀悎搴﹂珮錛屼笉鏄撶淮鎶ょ瓑緙虹偣錛屾瘮濡傝瑕佽榪欎釜鐢峰椹鵑┒涓杈咥udi錛屽垯榪橀渶瑕佷慨鏀圭被Person鐨勪唬鐮併?br />     鍥犳鍦╦ava鐨勮璁$悊璁轟腑灝辨彁鍑轟簡涓鏉¢潪甯歌憲鍚嶇殑鍘熷垯錛屼緷璧栧掕漿鍘熷垯錛圖ependence Inversion錛夛紝鍏舵牳蹇冩濇兂灝辨槸瑕佸皢榪欑鍏蜂綋綾諱箣闂寸殑渚濊禆錛屽敖閲忚漿鎹㈡垚鎶借薄渚濊禆錛屼篃灝辨槸璇寸被Person搴旇渚濊禆浜庢娊璞$被ICar錛岃屼笉鏄叿浣撶殑綾? Car錛岃繖閲宩ava灝卞ぇ鍔涙帹鑽愪簡鎶借薄鍜屾帴鍙g殑浣跨敤錛岃嚦浜庢娊璞″拰鎺ュ彛涔嬮棿鐨勫尯鍒紝浠諱綍涓鏈琂AVA涔︾睄閮芥湁浠嬬粛錛岃繖閲屽氨涓嶅啀璇翠簡銆?br />
    榪欎釜渚濊禆鍊掕漿鍘熷垯鍦ㄨ璁℃ā寮忎篃浣撶幇寰楅潪甯稿錛屾瘮濡傝宸ュ巶妯″紡鍜屾瀯寤烘ā寮忥紝涓漢璁や負鎺у埗鍙嶈漿IoC錛屽叾瀹炰篃鍙互璁や負鏄疄鐜拌繖涓師鍒欑殑涓縐嶈璁℃ā寮忋傛帶鍒跺弽 杞紝鍏朵腑鐨勬帶鍒惰繖涓瘝涓鐩翠笉澶悊瑙f槸浠涔堟剰鎬濓紝涓嶈繃鎺у埗鍙嶈漿鐨勫彟澶栦竴縐嶈娉曚篃灝辨槸渚濊禆娉ㄥ叆錛坉ependence injection錛夛紝涓漢瑙夊緱鏇存槗浜庣悊瑙c傝繕鏄互涓婃枃鐨刡oy涓巘oyota涓轟緥錛屽叾鏍稿績灝辨槸瑕佸皢boy渚濊禆鐨勫璞oyota娉ㄥ叆鍒癰oy涓幓錛岃屾棤 闇boy鑷繁鍘誨紩鐢╰oyota錛岃繖涓敞鍏ョ殑榪囩▼錛岄氬父鏄敱涓涓帶鍒剁▼搴忔潵瀹屾垚鐨勶紝鏃犻渶瀵硅薄鍘誨叧蹇冿紝涓句緥濡備笅錛?br /> Public Person{
private ICar car;
public Person(ICar onecar){
  car=onecar;
}
public void drive(){
  car.鎸傛。;
  car.韙╂補闂?
  car.鎵撴柟鍚?
}
}
    榪欎釜鏃跺欙紝榪涜娉ㄥ叆騫朵笖璋冪敤鐨勮繃紼嬶紝灝卞緢綆鍗曚簡錛屽涓嬶細
Toyota toyota=new Toyota();
Person boy=new Person(toyota);
boy.drive();
    娉細榪欓噷鎴戜滑鍋囧畾錛孴oyota綾繪槸ICar鎺ュ彛綾葷殑涓涓叿浣撳疄鐜般?br />     榪欎釜渚嬪瓙灝辨紨紺轟竴涓渶綆鍗曠殑娉ㄥ叆鏂瑰紡鐨勪緥瀛愶紝涔熷氨鏄瀯閫犲瓙鏂瑰紡娉ㄥ叆錛岄氳繃灝嗕緷璧栧璞℃敞鍏ュ埌瀵硅薄鐨勬瀯閫犲瓙涓潵瀹炵幇銆傚彟澶栬繕鏈変竴縐嶅父鐢ㄧ殑娉ㄥ叆鏂瑰紡錛屽氨鏄睘鎬ф柟寮忔敞鍏ワ紝鎰忔濆氨鏄氳繃灝嗕緷璧栧璞℃敞鍏ュ埌瀵硅薄鐨勫睘鎬т腑鏉ュ疄鐜幫紝榪樻槸浠oy鍜宼oyota鐨勪緥瀛愯鏄庯紝濡備笅錛?br /> Public Person{
private ICar car;
public Person(){
}
public void drive(){
  car.鎸傛。;
  car.韙╂補闂?
  car.鎵撴柟鍚?
}
public ICar getCar(){
  return this.car;
}
public void setCar(ICar onecar){
  car=onecar;
}
}
    榪欎釜鏃跺欙紝榪涜娉ㄥ叆騫朵笖璋冪敤鐨勮繃紼嬶紝灝卞彉鎴愬涓嬫墍紺猴細
Toyota toyota=new Toyota();
Person boy=new Person();
boy.setCar(toyota);
boy.drive();
    鑷蟲渚濊禆娉ㄥ叆鐨勬蹇靛簲璇ユ瘮杈冩竻妤氫簡錛屽啀鏉ョ湅鐪嬪湪Spring涓浣曞疄鐜癐oC鐨勶紝鐪嬬湅Spring濡備綍浣滀負涓涓垚鐔熺殑IoC瀹瑰櫒錛孲pring涓叾瀹炰富瑕? 閫氳繃涓や釜姒傚康鏉ュ疄鐜癐oC錛岄鍏堥氳繃XML閰嶇疆鏂囦歡錛屽皢瀵硅薄鍜屼緷璧栧璞¢兘閰嶇疆鍒版煇涓猉ML鏂囦歡涓紝褰撶劧璇ML鏂囦歡闇瑕佺鍚圫pring鎸囧畾鐨勮鑼冿紝鐒跺悗 閫氳繃鏋舵瀯涓殑BeanFactroy綾伙紝鏉ヨ嚜鍔ㄥ疄鐜頒笂鏂囨墍榪版敞鍏ヨ繃紼嬶紝榪樻槸浠oy涓巘oyota涓轟緥錛屽涓嬶細
棣栧厛錛孭erson綾昏繕鏄竴鏍風殑錛?br /> 鐒跺悗xml閰嶇疆鏂囦歡澧炲姞鐐逛笢瑗?錛堝亣瀹氫負bean.xml錛夛細
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
   <bean id="oneCar" class="Toyota"> <!-- Toyota綾繪槸ICar鐨勪竴涓疄鐜?->
   </bean>
   <bean id="onePerson" class="Person"> <!--鏈緥浠ュ睘鎬ф柟寮忔敞鍏ヤ負渚?-->
       <property name="car"> 
           <ref bean="oneCar"></ref>
       </property>
   </bean>
</beans>
鏈鍚庯紝璋冪敤鐨勮繃紼嬶紝灝卞彉鎴愬涓嬶細
BeanFactory factory=new XmlBeanFactory("bean.xml");
Person boy=(Person )factory.getBean("onePerson");
boy.drive();

lau 2010-12-02 17:07 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 望谟县| 麻城市| 潢川县| 肇庆市| 民县| 津南区| 涞水县| 呼伦贝尔市| 台前县| 乳山市| 扎赉特旗| 沭阳县| 缙云县| 勃利县| 太保市| 百色市| 修水县| 布尔津县| 林周县| 高唐县| 施甸县| 陆河县| 邯郸县| 达孜县| 黄骅市| 县级市| 榆社县| 古蔺县| 淳化县| 东光县| 抚顺县| 安阳县| 永登县| 南投市| 达拉特旗| 法库县| 南京市| 嘉荫县| 灵寿县| 静海县| 青海省|