锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成人网在线观看,亚洲另类激情综合偷自拍 ,亚洲国产av高清无码http://www.tkk7.com/caizh2009/category/43531.html涓庡ぇ瀹跺叡鍚屾垚闀?/description>zh-cnThu, 04 Mar 2010 15:29:43 GMTThu, 04 Mar 2010 15:29:43 GMT60java宸ュ巶妯″紡http://www.tkk7.com/caizh2009/archive/2010/03/04/314518.html灝忚彍姣涙瘺灝忚彍姣涙瘺Thu, 04 Mar 2010 07:21:00 GMThttp://www.tkk7.com/caizh2009/archive/2010/03/04/314518.htmlhttp://www.tkk7.com/caizh2009/comments/314518.htmlhttp://www.tkk7.com/caizh2009/archive/2010/03/04/314518.html#Feedback0http://www.tkk7.com/caizh2009/comments/commentRss/314518.htmlhttp://www.tkk7.com/caizh2009/services/trackbacks/314518.html
 
java宸ュ巶妯″紡
[ 2009-2-6 16:15:00 | By: 瀛欏ぇ宄?]
 

涓銆佸紩瀛?br /> 璇濊鍗佸勾鍓嶏紝鏈変竴涓垎鍙戞埛錛屼粬瀹舵湁涓夎締姹借濺錛?span style="font-size: 10pt">Benz錛堝椹幫級銆?span style="font-size: 10pt">Bmw錛堝疂椹級銆?span style="font-size: 10pt">Audi錛堝ゥ榪級鐪嬫潵榪欎漢姣旇緝鐖卞浗錛屾病鏈夋棩鏈濺錛夛紝榪橀泧浜嗗徃鏈轟負浠栧紑杞︺備笉榪囷紝鐖嗗彂鎴峰潗杞︽椂鎬繪槸榪欐牱錛氫笂Benz杞﹀悗璺熷徃鏈鴻"寮濂旈┌杞︼紒"錛屽潗涓?span style="font-size: 10pt">Bmw鍚庝粬璇?span style="font-size: 10pt">"寮瀹濋┈杞︼紒"錛屽潗涓?span style="font-size: 10pt">Audi鍚庝粬璇?span style="font-size: 10pt">"寮濂ヨ開杞︼紒"銆?/span>浣犱竴瀹氳錛氳繖浜烘湁鐥咃紒鐩存帴璇村紑杞︿笉灝辮浜嗭紵錛?鑰屽綋鎶婅繖涓垎鍙戞埛鐨勮涓烘斁鍒版垜浠▼搴忚璦涓潵錛屾垜浠彂鐜?span style="font-size: 10pt">C璇█涓鐩存槸閫氳繃榪欑鏂瑰紡鏉ュ潗杞︾殑錛?/span>騫歌繍鐨勬槸錛岃繖縐嶆湁鐥呯殑鐜拌薄鍦?span style="font-size: 10pt">OO璇█涓彲浠ラ伩鍏嶄簡銆備笅闈互Java璇█涓哄熀紜鏉ュ紩鍏ユ垜浠湰鏂囩殑涓婚錛氬伐鍘傛ā寮忥紒錛?/span>

浜屻佺畝浠?span style="font-size: 10pt">
宸ュ巶妯″紡涓昏鏄負鍒涘緩瀵硅薄鎻愪緵浜嗘帴鍙c傚伐鍘傛ā寮忔寜鐓с?span style="font-size: 10pt">Java涓庢ā寮忋嬩腑鐨勬彁娉曞垎涓轟笁綾伙細
1.
綆鍗曞伐鍘傛ā寮?span style="font-size: 10pt">(Simple Factory)
2. 宸ュ巶鏂規硶妯″紡(Factory Method)
3.
鎶借薄宸ュ巶妯″紡(Abstract Factory)
榪欎笁縐嶆ā寮忎粠涓婂埌涓嬮愭鎶借薄錛屽茍涓旀洿鍏蜂竴鑸с傝繕鏈変竴縐嶅垎綾繪硶錛屽氨鏄皢綆鍗曞伐鍘傛ā寮忕湅涓哄伐鍘傛柟娉曟ā寮忕殑涓縐嶇壒渚嬶紝涓や釜褰掍負涓綾匯備笅闈㈡槸浣跨敤宸ュ巶妯″紡鐨勪袱縐嶆儏鍐碉細
1.
鍦ㄧ紪鐮佹椂涓嶈兘棰勮闇瑕佸垱寤哄摢縐嶇被鐨勫疄渚嬨?span style="font-size: 10pt">
2.緋葷粺涓嶅簲渚濊禆浜庝駭鍝佺被瀹炰緥濡備綍琚垱寤恒佺粍鍚堝拰琛ㄨ揪鐨勭粏鑺?/span>

 
涓夈佺畝鍗曞伐鍘傛ā寮?span style="font-size: 10pt">
欏懼悕鎬濅箟錛岃繖涓ā寮忔湰韜緢綆鍗曪紝鑰屼笖浣跨敤鍦ㄤ笟鍔¤緝綆鍗曠殑鎯呭喌涓嬨?span style="font-size: 10pt">
瀹冪敱涓夌瑙掕壊緇勬垚錛堝叧緋昏涓嬮潰鐨勭被鍥撅級錛?span style="font-size: 10pt">
1銆佸伐鍘傜被瑙掕壊錛氳繖鏄湰妯″紡鐨勬牳蹇冿紝鍚湁涓瀹氱殑鍟嗕笟閫昏緫鍜屽垽鏂昏緫銆傚湪java涓畠寰寰鐢變竴涓叿浣撶被瀹炵幇銆?/span>
2銆佹娊璞′駭鍝佽鑹詫細瀹冧竴鑸槸鍏蜂綋浜у搧緇ф壙鐨勭埗綾繪垨鑰呭疄鐜扮殑鎺ュ彛銆傚湪java涓敱鎺ュ彛鎴栬呮娊璞$被鏉ュ疄鐜般?/span>
3銆佸叿浣撲駭鍝佽鑹詫細宸ュ巶綾繪墍鍒涘緩鐨勫璞″氨鏄瑙掕壊鐨勫疄渚嬨傚湪java涓敱涓涓叿浣撶被瀹炵幇銆?span style="font-size: 10pt">

閭d箞綆鍗曞伐鍘傛ā寮忔庝箞鐢ㄥ憿錛熸垜鏉ヤ婦涓緥瀛愬惂錛屾垜鎯寵繖涓瘮璁蹭竴澶ф鐞嗚涓婄殑鏂囧瓧鎻忚堪瑕佸鏄撶悊瑙g殑澶氾紒涓嬮潰灝辨潵緇欓偅涓毚鍙戞埛娌葷梾: P
鍦ㄤ嬌鐢ㄤ簡綆鍗曞伐鍘傛ā寮忓悗錛岀幇鍦ㄦ毚鍙戞埛鍙渶瑕佸潗鍦ㄨ濺閲屽鍙告満璇村彞錛?span style="font-size: 10pt">"
寮杞?span style="font-size: 10pt">"灝卞彲浠ヤ簡銆傛潵鐪嬬湅鎬庝箞瀹炵幇鐨勶細
//
鎶借薄浜у搧瑙掕壊
public interface Car{
public void drive();
}

//鍏蜂綋浜у搧瑙掕壊
public class Benz implements Car{
public void drive() {
System.out.println("Driving Benz ");
}
}

public class Bmw implements Car{
public void drive() {
System.out.println("Driving Bmw ");
}
}
銆傘傘傦紙濂ヨ開鎴戝氨涓嶅啓浜?span style="font-size: 10pt">:P錛?/span>

//宸ュ巶綾昏鑹?span style="font-size: 10pt">
public class Driver{

//宸ュ巶鏂規硶
//
娉ㄦ剰 榪斿洖綾誨瀷涓烘娊璞′駭鍝佽鑹?span style="font-size: 10pt">
public static Car driverCar(String s)throws Exception {

//鍒ゆ柇閫昏緫錛岃繑鍥炲叿浣撶殑浜у搧瑙掕壊緇?span style="font-size: 10pt">Client
if(s.equalsIgnoreCase("Benz")) return new Benz();
else if(s.equalsIgnoreCase("Bmw"))
return new Bmw();

......
else throw new Exception();
銆傘傘?/span>

//嬈㈣繋鏆村彂鎴峰嚭鍦?span style="font-size: 10pt">......
public class Magnate{
public static void main(String[] args){
try{
//
鍛婅瘔鍙告満鎴戜粖澶╁潗濂旈┌
Car car = Driver.driverCar("benz");
//
涓嬪懡浠わ細寮杞?span style="font-size: 10pt">
car.drive();
銆傘傘?span style="font-size: 10pt">
濡傛灉灝嗘墍鏈夌殑綾繪斁鍦ㄤ竴涓枃浠朵腑錛岃涓嶈蹇樿鍙兘鏈変竴涓被琚0鏄庝負public銆?/span> 紼嬪簭涓被涔嬮棿鐨勫叧緋誨涓嬶細
榪欎究鏄畝鍗曞伐鍘傛ā寮忎簡銆備笅闈㈡槸鍏跺ソ澶勶細
棣栧厛錛屼嬌鐢ㄤ簡綆鍗曞伐鍘傛ā寮忓悗錛屾垜浠殑紼嬪簭涓嶅湪"鏈夌梾"錛屾洿鍔犵鍚堢幇瀹炰腑鐨勬儏鍐碉紱鑰屼笖瀹㈡埛绔厤闄や簡鐩存帴鍒涘緩浜у搧瀵硅薄鐨勮矗浠伙紝鑰屼粎浠呰礋璐?span style="font-size: 10pt">"娑堣垂"浜у搧錛堟濡傛毚鍙戞埛鎵涓猴級銆?span style="font-size: 10pt">
涓嬮潰鎴戜滑浠庡紑闂師鍒欎笂鏉ュ垎鏋愪笅綆鍗曞伐鍘傛ā寮忋傚綋鏆村彂鎴峰鍔犱簡涓杈嗚濺鐨勬椂鍊欙紝鍙絎﹀悎鎶借薄浜у搧鍒跺畾鐨勫悎鍚岋紝閭d箞鍙閫氱煡宸ュ巶綾葷煡閬撳氨鍙互琚鎴蜂嬌鐢ㄤ簡銆傞偅涔堝浜庝駭鍝侀儴鍒嗘潵璇達紝瀹冩槸絎﹀悎寮闂師鍒欑殑--瀵規墿灞曞紑鏀俱佸淇敼鍏抽棴錛涗絾鏄伐鍘傞儴鍒嗗ソ鍍忎笉澶悊鎯籌紝鍥犱負姣忓鍔犱竴杈嗚濺錛岄兘瑕佸湪宸ュ巶綾諱腑澧炲姞鐩稿簲鐨勫晢涓氶昏緫鍜屽垽鏂昏緫錛岃繖鏄捐嚜鐒舵槸榪濊儗寮闂師鍒欑殑銆?span style="font-size: 10pt">
瀵逛簬榪欐牱鐨勫伐鍘傜被錛堝湪鎴戜滑鐨勪緥瀛愪腑鏄負鍙告満甯堝倕錛夛紝鎴戜滑縐板畠涓哄叏鑳界被鎴栬呬笂甯濈被銆?span style="font-size: 10pt">
鎴戜滑涓劇殑渚嬪瓙鏄渶綆鍗曠殑鎯呭喌錛岃屽湪瀹為檯搴旂敤涓紝寰堝彲鑳戒駭鍝佹槸涓涓灞傛鐨勬爲鐘剁粨鏋勩傜敱浜庣畝鍗曞伐鍘傛ā寮忎腑鍙湁涓涓伐鍘傜被鏉ュ搴旇繖浜涗駭鍝侊紝鎵浠ヨ繖鍙兘浼氭妸鎴戜滑鐨勪笂甯濈被鍧忎簡錛岃繘鑰岀瘡鍧忎簡鎴戜滑鍙埍鐨勭▼搴忓憳:(
姝e鎴戝墠闈㈡彁鍒扮殑綆鍗曞伐鍘傛ā寮忛傜敤浜庝笟鍔″皢綆鍗曠殑鎯呭喌涓嬨傝屽浜庡鏉傜殑涓氬姟鐜鍙兘涓嶅お閫傚簲闃褲傝繖灝卞簲璇ョ敱宸ュ巶鏂規硶妯″紡鏉ュ嚭鍦轟簡錛侊紒

鍥涖佸伐鍘傛柟娉曟ā寮?span style="font-size: 10pt">
鍏堟潵鐪嬩笅瀹冪殑緇勬垚鍚э細
1銆佹娊璞″伐鍘傝鑹詫細榪欐槸宸ュ巶鏂規硶妯″紡鐨勬牳蹇冿紝瀹冧笌搴旂敤紼嬪簭鏃犲叧銆傛槸鍏蜂綋宸ュ巶瑙掕壊蹇呴』瀹炵幇鐨勬帴鍙f垨鑰呭繀欏葷戶鎵跨殑鐖剁被銆傚湪java涓畠鐢辨娊璞$被鎴栬呮帴鍙f潵瀹炵幇銆?span style="font-size: 10pt">
2銆佸叿浣撳伐鍘傝鑹詫細瀹冨惈鏈夊拰鍏蜂綋涓氬姟閫昏緫鏈夊叧鐨勪唬鐮併傜敱搴旂敤紼嬪簭璋冪敤浠ュ垱寤哄搴旂殑鍏蜂綋浜у搧鐨勫璞°傚湪java涓畠鐢卞叿浣撶殑綾繪潵瀹炵幇銆?span style="font-size: 10pt">
3銆佹娊璞′駭鍝佽鑹詫細瀹冩槸鍏蜂綋浜у搧緇ф壙鐨勭埗綾繪垨鑰呮槸瀹炵幇鐨勬帴鍙c傚湪java涓竴鑸湁鎶借薄綾繪垨鑰呮帴鍙f潵瀹炵幇銆?span style="font-size: 10pt">
4銆佸叿浣撲駭鍝佽鑹詫細鍏蜂綋宸ュ巶瑙掕壊鎵鍒涘緩鐨勫璞″氨鏄瑙掕壊鐨勫疄渚嬨傚湪java涓敱鍏蜂綋鐨勭被鏉ュ疄鐜般?span style="font-size: 10pt">
鏉ョ敤綾誨浘鏉ユ竻鏅扮殑琛ㄧず涓嬬殑瀹冧滑涔嬮棿鐨勫叧緋伙細


鎴戜滑榪樻槸鑰佽鐭╀嬌鐢ㄤ竴涓畬鏁寸殑渚嬪瓙鏉ョ湅鐪嬪伐鍘傛ā寮忓悇涓鑹蹭箣闂存槸濡備綍鏉ュ崗璋冪殑銆傝瘽璇存毚鍙戞埛鐢熸剰瓚婂仛瓚婂ぇ錛岃嚜宸辯殑鐖辮濺涔熻秺鏉ヨ秺澶氥傝繖鍙嫤浜嗛偅浣嶅徃鏈哄笀鍌呬簡錛屼粈涔堣濺瀹冮兘瑕佽寰楋紝緇存姢錛岄兘瑕佺粡榪囦粬鏉ヤ嬌鐢紒浜庢槸鏆村彂鎴峰悓鎯呬粬璇達細鐪嬩綘璺熸垜榪欎箞澶氬勾鐨勪喚涓婏紝浠ュ悗浣犱笉鐢ㄨ繖涔堣緵鑻︿簡錛屾垜緇欎綘鍒嗛厤鍑犱釜浜烘墜錛屼綘鍙綆″ソ浠栦滑灝辮浜嗭紒浜庢槸錛屽伐鍘傛柟娉曟ā寮忕殑綆$悊鍑虹幇浜嗐備唬鐮佸涓嬶細
//
鎶借薄浜у搧瑙掕壊錛屽叿浣撲駭鍝佽鑹蹭笌綆鍗曞伐鍘傛ā寮忕被浼鹼紝鍙槸鍙樺緱澶嶆潅浜嗕簺錛岃繖閲岀暐銆?span style="font-size: 10pt">
//
鎶借薄宸ュ巶瑙掕壊
public interface Driver{
public Car driverCar();
}
public class BenzDriver implements Driver{
public Car driverCar(){
return new Benz();
}
}
public class BmwDriver implements Driver{
public Car driverCar() {
return new Bmw();
}
}
......//
搴旇鍜屽叿浣撲駭鍝佸艦鎴愬搴斿叧緋伙紝榪欓噷鐣?span style="font-size: 10pt">...
//鏈夎鏆村彂鎴峰厛鐢?span style="font-size: 10pt">
public class Magnate
{
public static void main(String[] args)
{
try{
Driver driver = new BenzDriver();

Car car = driver.driverCar();
car.drive();
}catch(Exception e)
{ }
}
}
宸ュ巶鏂規硶浣跨敤涓涓娊璞″伐鍘傝鑹蹭綔涓烘牳蹇冩潵浠f浛鍦ㄧ畝鍗曞伐鍘傛ā寮忎腑浣跨敤鍏蜂綋綾諱綔涓烘牳蹇冦傝鎴戜滑鏉ョ湅鐪嬪伐鍘傛柟娉曟ā寮忕粰鎴戜滑甯︽潵浜嗕粈涔堬紵浣跨敤寮闂師鍒欐潵鍒嗘瀽涓嬪伐鍘傛柟娉曟ā寮忋傚綋鏈夋柊鐨勪駭鍝侊紙鍗蟲毚鍙戞埛鐨勬苯杞︼級浜х敓鏃訛紝鍙鎸夌収鎶借薄浜у搧瑙掕壊銆佹娊璞″伐鍘傝鑹叉彁渚涚殑鍚堝悓鏉ョ敓鎴愶紝閭d箞灝卞彲浠ヨ瀹㈡埛浣跨敤錛岃屼笉蹇呭幓淇敼浠諱綍宸叉湁鐨勪唬鐮併傜湅鏉ワ紝宸ュ巶鏂規硶妯″紡鏄畬鍏ㄧ鍚堝紑闂師鍒欑殑錛?span style="font-size: 10pt">
浣跨敤宸ュ巶鏂規硶妯″紡瓚充互搴斾粯鎴戜滑鍙兘閬囧埌鐨勫ぇ閮ㄥ垎涓氬姟闇姹傘備絾鏄綋浜у搧縐嶇被闈炲父澶氭椂錛屽氨浼氬嚭鐜板ぇ閲忕殑涓庝箣瀵瑰簲鐨勫伐鍘傜被錛岃繖涓嶅簲璇ユ槸鎴戜滑鎵甯屾湜鐨勩傛墍浠ユ垜寤鴻鍦ㄨ繖縐嶆儏鍐典笅浣跨敤綆鍗曞伐鍘傛ā寮忎笌宸ュ巶鏂規硶妯″紡鐩哥粨鍚堢殑鏂瑰紡鏉ュ噺灝戝伐鍘傜被錛氬嵆瀵逛簬浜у搧鏍戜笂綾諱技鐨勭綾伙紙涓鑸槸鏍戠殑鍙跺瓙涓簰涓哄厔寮熺殑錛変嬌鐢ㄧ畝鍗曞伐鍘傛ā寮忔潵瀹炵幇銆?span style="font-size: 10pt">
褰撶劧鐗規畩鐨勬儏鍐碉紝灝辮鐗規畩瀵瑰緟浜嗭細瀵逛簬緋葷粺涓瓨鍦ㄤ笉鍚岀殑浜у搧鏍戯紝鑰屼笖浜у搧鏍戜笂瀛樺湪浜у搧鏃忥紝閭d箞榪欑鎯呭喌涓嬪氨鍙兘鍙互浣跨敤鎶借薄宸ュ巶妯″紡浜嗐?/span>

浜斻佸皬緇?span style="font-size: 10pt">
璁╂垜浠潵鐪嬬湅綆鍗曞伐鍘傛ā寮忋佸伐鍘傛柟娉曟ā寮忕粰鎴戜滑鐨勫惎榪細
濡傛灉涓嶄嬌鐢ㄥ伐鍘傛ā寮忔潵瀹炵幇鎴戜滑鐨勪緥瀛愶紝涔熻浠g爜浼氬噺灝戝緢澶?span style="font-size: 10pt">--鍙渶瑕佸疄鐜板凡鏈夌殑杞︼紝涓嶄嬌鐢ㄥ鎬併備絾鏄湪鍙淮鎶ゆт笂錛屽彲鎵╁睍鎬т笂鏄潪甯稿樊鐨勶紙浣犲彲浠ユ兂璞′竴涓嬶紝娣誨姞涓杈嗚濺鍚庤鐗靛姩鐨勭被錛夈傚洜姝や負浜嗘彁楂樻墿灞曟у拰緇存姢鎬э紝澶氬啓浜涗唬鐮佹槸鍊煎緱鐨勩?/span>

鍏佹娊璞″伐鍘傛ā寮?span style="font-size: 10pt">
鍏堟潵璁よ瘑涓嬩粈涔堟槸浜у搧鏃忥細浣嶄簬涓嶅悓浜у搧絳夌駭緇撴瀯涓紝鍔熻兘鐩稿叧鑱旂殑浜у搧緇勬垚鐨勫鏃忋傚鏋滃厜鐪嬭繖鍙ヨ瘽灝辮兘娓呮鐨勭悊瑙h繖涓蹇碉紝鎴戜笉寰椾笉浣╂湇浣犲晩銆傝繕鏄鎴戜滑鐢ㄤ竴涓緥瀛愭潵褰㈣薄鍦拌鏄庝竴涓嬪惂銆?/span>

鍥句腑鐨?span style="font-size: 10pt">BmwCar鍜?span style="font-size: 10pt">BenzCar灝辨槸涓や釜浜у搧鏍戯紙浜у搧灞傛緇撴瀯錛夛紱鑰屽鍥炬墍紺虹殑BenzSportsCar鍜?span style="font-size: 10pt">BmwSportsCar灝辨槸涓涓駭鍝佹棌銆備粬浠兘鍙互鏀懼埌璺戣濺瀹舵棌涓紝鍥犳鍔熻兘鏈夋墍鍏寵仈銆傚悓鐞?span style="font-size: 10pt">BmwBussinessCar鍜?span style="font-size: 10pt">BenzSportsCar涔熸槸涓涓駭鍝佹棌銆?span style="font-size: 10pt">
鍥炲埌鎶借薄浜у搧妯″紡鐨勮瘽棰樹笂錛屽彲浠ヨ繖涔堣錛屽畠鍜屽伐鍘傛柟娉曟ā寮忕殑鍖哄埆灝卞湪浜庨渶瑕佸垱寤哄璞$殑澶嶆潅紼嬪害涓娿傝屼笖鎶借薄宸ュ巶妯″紡鏄笁涓噷闈㈡渶涓烘娊璞°佹渶鍏蜂竴鑸х殑銆傛娊璞″伐鍘傛ā寮忕殑鐢ㄦ剰涓猴細緇欏鎴風鎻愪緵涓涓帴鍙o紝鍙互鍒涘緩澶氫釜浜у搧鏃忎腑鐨勪駭鍝佸璞°傝屼笖浣跨敤鎶借薄宸ュ巶妯″紡榪樿婊¤凍涓涓嬫潯浠訛細
1.
緋葷粺涓湁澶氫釜浜у搧鏃忥紝鑰岀郴緇熶竴嬈″彧鍙兘娑堣垂鍏朵腑涓鏃忎駭鍝?span style="font-size: 10pt">
2.鍚屽睘浜庡悓涓涓駭鍝佹棌鐨勪駭鍝佷互鍏朵嬌鐢ㄣ?span style="font-size: 10pt">
鏉ョ湅鐪嬫娊璞″伐鍘傛ā寮忕殑鍚勪釜瑙掕壊錛堝拰宸ュ巶鏂規硶鐨勫鍑轟竴杈欙級錛?span style="font-size: 10pt">
鎶借薄宸ュ巶瑙掕壊錛氳繖鏄伐鍘傛柟娉曟ā寮忕殑鏍稿績錛屽畠涓庡簲鐢ㄧ▼搴忔棤鍏熾傛槸鍏蜂綋宸ュ巶瑙掕壊蹇呴』瀹炵幇鐨勬帴鍙f垨鑰呭繀欏葷戶鎵跨殑鐖剁被銆傚湪java涓畠鐢辨娊璞$被鎴栬呮帴鍙f潵瀹炵幇銆?span style="font-size: 10pt">
鍏蜂綋宸ュ巶瑙掕壊錛氬畠鍚湁鍜屽叿浣撲笟鍔¢昏緫鏈夊叧鐨勪唬鐮併傜敱搴旂敤紼嬪簭璋冪敤浠ュ垱寤哄搴旂殑鍏蜂綋浜у搧鐨勫璞°傚湪java涓畠鐢卞叿浣撶殑綾繪潵瀹炵幇銆?span style="font-size: 10pt">
鎶借薄浜у搧瑙掕壊錛氬畠鏄叿浣撲駭鍝佺戶鎵跨殑鐖剁被鎴栬呮槸瀹炵幇鐨勬帴鍙c傚湪java涓竴鑸湁鎶借薄綾繪垨鑰呮帴鍙f潵瀹炵幇銆?span style="font-size: 10pt">
鍏蜂綋浜у搧瑙掕壊錛氬叿浣撳伐鍘傝鑹叉墍鍒涘緩鐨勫璞″氨鏄瑙掕壊鐨勫疄渚嬨傚湪java涓敱鍏蜂綋鐨勭被鏉ュ疄鐜般?span style="font-size: 10pt">

鐪嬭繃浜嗗墠涓や釜妯″紡錛屽榪欎釜妯″紡鍚勪釜瑙掕壊涔嬮棿鐨勫崗璋冩儏鍐靛簲璇ュ績閲屾湁涓暟浜嗭紝鎴戝氨涓嶄婦鍏蜂綋鐨勪緥瀛愪簡銆傚彧鏄竴瀹氳娉ㄦ剰婊¤凍浣跨敤鎶借薄宸ュ巶妯″紡鐨勬潯浠跺摝錛屼笉鐒跺嵆浣垮瓨鍦ㄤ簡澶氫釜浜у搧鏍戯紝涔熷瓨鍦ㄤ駭鍝佹棌錛屼絾鏄笉鑳戒嬌鐢ㄧ殑銆?/span>



]]>
璁捐妯″紡涔婼ingleton(鍗曟?http://www.tkk7.com/caizh2009/archive/2010/01/11/309011.html灝忚彍姣涙瘺灝忚彍姣涙瘺Mon, 11 Jan 2010 05:44:00 GMThttp://www.tkk7.com/caizh2009/archive/2010/01/11/309011.htmlhttp://www.tkk7.com/caizh2009/comments/309011.htmlhttp://www.tkk7.com/caizh2009/archive/2010/01/11/309011.html#Feedback0http://www.tkk7.com/caizh2009/comments/commentRss/309011.htmlhttp://www.tkk7.com/caizh2009/services/trackbacks/309011.html鍗曟佸畾涔?/strong>:
Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓涓被Class鍙湁涓涓疄渚嬪瓨鍦ㄣ?

鍦ㄥ緢澶氭搷浣滀腑錛屾瘮濡傚緩绔嬬洰褰?鏁版嵁搴撹繛鎺ラ兘闇瑕佽繖鏍風殑鍗曠嚎紼嬫搷浣溿?/p>

榪樻湁, singleton鑳藉琚姸鎬佸寲; 榪欐牱錛屽涓崟鎬佺被鍦ㄤ竴璧峰氨鍙互浣滀負涓涓姸鎬佷粨搴撲竴鏍峰悜澶栨彁渚涙湇鍔★紝姣斿錛屼綘瑕佽鍧涗腑鐨勫笘瀛愯鏁板櫒錛屾瘡嬈℃祻瑙堜竴嬈¢渶瑕佽鏁幫紝鍗曟佺被鑳藉惁淇濇寔浣忚繖涓鏁幫紝騫朵笖鑳絪ynchronize鐨勫畨鍏ㄨ嚜鍔ㄥ姞1錛屽鏋滀綘瑕佹妸榪欎釜鏁板瓧姘鎬箙淇濆瓨鍒版暟鎹簱錛屼綘鍙互鍦ㄤ笉淇敼鍗曟佹帴鍙g殑鎯呭喌涓嬫柟渚跨殑鍋氬埌銆?/p>

鍙﹀鏂歸潰錛孲ingleton涔熻兘澶熻鏃犵姸鎬佸寲銆傛彁渚涘伐鍏鋒ц川鐨勫姛鑳斤紝

Singleton妯″紡灝變負鎴戜滑鎻愪緵浜嗚繖鏍峰疄鐜扮殑鍙兘銆備嬌鐢⊿ingleton鐨勫ソ澶勮繕鍦ㄤ簬鍙互鑺傜渷鍐呭瓨錛屽洜涓哄畠闄愬埗浜嗗疄渚嬬殑涓暟錛屾湁鍒╀簬Java鍨冨溇鍥炴敹錛坓arbage collection錛夈?br />
鎴戜滑甯稿父鐪嬪埌宸ュ巶妯″紡涓被瑁呭叆鍣?class loader)涓篃鐢⊿ingleton妯″紡瀹炵幇鐨?鍥犱負琚鍏ョ殑綾誨疄闄呬篃灞炰簬璧勬簮銆?br />

濡備綍浣跨敤?
涓鑸琒ingleton妯″紡閫氬父鏈夊嚑縐嶅艦寮?

public class Singleton {

銆銆private Singleton(){}

銆銆//鍦ㄨ嚜宸卞唴閮ㄥ畾涔夎嚜宸變竴涓疄渚嬶紝鏄笉鏄緢濂囨紵
銆銆//娉ㄦ剰榪欐槸private 鍙緵鍐呴儴璋冪敤

銆銆private static Singleton instance = new Singleton();

銆銆//榪欓噷鎻愪緵浜嗕竴涓緵澶栭儴璁塊棶鏈琧lass鐨勯潤鎬佹柟娉曪紝鍙互鐩存帴璁塊棶銆銆
銆銆public static Singleton getInstance() {
銆銆銆銆return instance; 銆銆
銆銆 }
}

 

絎簩縐嶅艦寮?

public class Singleton {

銆銆private static Singleton instance = null;

銆銆public static synchronized Singleton getInstance() {

銆銆if (instance==null)
銆銆銆銆instance錛漬ew Singleton();
銆銆return instance; 銆銆}

}

 

浣跨敤Singleton.getInstance()鍙互璁塊棶鍗曟佺被銆?/p>

涓婇潰絎簩涓艦寮忔槸lazy initialization錛屼篃灝辨槸璇寸涓嬈¤皟鐢ㄦ椂鍒濆Singleton錛屼互鍚庡氨涓嶇敤鍐嶇敓鎴愪簡銆?/p>

娉ㄦ剰鍒發azy initialization褰㈠紡涓殑synchronized錛岃繖涓猻ynchronized寰堥噸瑕侊紝濡傛灉娌℃湁synchronized錛岄偅涔堜嬌鐢╣etInstance()鏄湁鍙兘寰楀埌澶氫釜Singleton瀹炰緥銆傚叧浜巐azy initialization鐨凷ingleton鏈夊緢澶氭秹鍙奷ouble-checked locking (DCL)鐨勮璁猴紝鏈夊叴瓚h呰繘涓姝ョ爺絀躲?/p>

涓鑸涓虹涓縐嶅艦寮忚鏇村姞瀹夊叏浜涖?br />

浣跨敤Singleton娉ㄦ剰浜嬮」錛?br /> 鏈夋椂鍦ㄦ煇浜涙儏鍐典笅錛屼嬌鐢⊿ingleton騫朵笉鑳借揪鍒癝ingleton鐨勭洰鐨勶紝濡傛湁澶氫釜Singleton瀵硅薄鍚屾椂琚笉鍚岀殑綾昏鍏ュ櫒瑁呰澆錛涘湪EJB榪欐牱鐨勫垎甯冨紡緋葷粺涓嬌鐢ㄤ篃瑕佹敞鎰忚繖縐嶆儏鍐碉紝鍥犱負EJB鏄法鏈嶅姟鍣紝璺↗VM鐨勩?/p>

鎴戜滑浠UN鍏徃鐨勫疇鐗╁簵婧愮爜(Pet Store 1.3.1)鐨凷erviceLocator涓轟緥紼嶅井鍒嗘瀽涓涓嬶細

鍦≒et Store涓璖erviceLocator鏈変袱縐嶏紝涓涓槸EJB鐩綍涓嬶紱涓涓槸WEB鐩綍涓嬶紝鎴戜滑媯鏌ヨ繖涓や釜ServiceLocator浼氬彂鐜板唴瀹瑰樊涓嶅錛岄兘鏄彁渚汦JB鐨勬煡璇㈠畾浣嶆湇鍔★紝鍙槸涓轟粈涔堣鍒嗗紑鍛紵浠旂粏鐮旂┒瀵硅繖涓ょServiceLocator鎵嶅彂鐜板尯鍒細鍦╓EB涓殑ServiceLocator鐨勯噰鍙朣ingleton妯″紡錛孲erviceLocator灞炰簬璧勬簮瀹氫綅錛岀悊鎵褰撶劧搴旇浣跨敤Singleton妯″紡銆備絾鏄湪EJB涓紝Singleton妯″紡宸茬粡澶卞幓浣滅敤錛屾墍浠erviceLocator鎵嶅垎鎴愪袱縐嶏紝涓縐嶉潰鍚慦EB鏈嶅姟鐨勶紝涓縐嶆槸闈㈠悜EJB鏈嶅姟鐨勩?/p>

Singleton妯″紡鐪嬭搗鏉ョ畝鍗曪紝浣跨敤鏂規硶涔熷緢鏂逛究錛屼絾鏄湡姝g敤濂斤紝鏄潪甯鎬笉瀹規槗錛岄渶瑕佸Java鐨勭被 綰跨▼ 鍐呭瓨絳夋蹇墊湁鐩稿綋鐨勪簡瑙c?/p>

鎬諱箣錛氬鏋滀綘鐨勫簲鐢ㄥ熀浜庡鍣紝閭d箞Singleton妯″紡灝戠敤鎴栬呬笉鐢紝鍙互浣跨敤鐩稿叧鏇夸唬鎶鏈?/p>

 

榪涗竴姝ユ繁鍏ュ彲鍙傝冿細

Double-checked locking and the Singleton pattern

When is a singleton not a singleton?

Singleton鏄偑鎭剁殑

鍏充簬web搴旂敤鐨剆tatic鍙橀噺

Jive涓殑鍗曚緥妯″紡

鏇村鍗曚緥涓撻

鏇村鏈ā寮忎笓棰?/a>

鏇村綰跨▼瀹夊叏涓撻

鏇村鍚屾鎴栭攣涓撻

鏇村瀵硅薄鐢熷懡鍛ㄦ湡涓撻



]]>
主站蜘蛛池模板: 最好免费观看韩国+日本| 三上悠亚在线观看免费| 亚洲成在人线aⅴ免费毛片| 亚洲黄色在线播放| 久久久久免费精品国产小说| 亚洲无人区一区二区三区| 黄色短视频免费看| 亚洲国产精品VA在线观看麻豆| 两性色午夜视频免费播放| 亚洲国产精品无码专区在线观看| 国产特黄特色的大片观看免费视频| 在线亚洲人成电影网站色www| WWW免费视频在线观看播放| 亚洲成a人片在线观看无码专区| a级毛片免费高清毛片视频| 亚洲国产二区三区久久| 国产在线jyzzjyzz免费麻豆| 亚洲无吗在线视频| 免费人成在线观看视频播放| 国产99精品一区二区三区免费| 亚洲女久久久噜噜噜熟女| 久久久99精品免费观看| tom影院亚洲国产一区二区| 日本一道高清不卡免费| 成人特级毛片69免费观看| 亚洲精品无码mv在线观看网站| 亚洲精品免费在线| 色偷偷噜噜噜亚洲男人| 久久99国产亚洲高清观看首页| 91免费国产在线观看| 在线观看亚洲精品专区| 久久噜噜噜久久亚洲va久| 成年私人影院免费视频网站| fc2成年免费共享视频网站| 精品无码一区二区三区亚洲桃色| 成年女人免费v片| 三上悠亚电影全集免费 | 亚洲午夜未满十八勿入| 欧美最猛性xxxxx免费| 国产免费播放一区二区| 亚洲国产成人精品激情|