锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久97超碰国产精品超碰,青青免费在线视频,日韩一级黄色avhttp://www.aygfsteel.com/dada2007/zh-cnTue, 17 Jun 2025 20:19:10 GMTTue, 17 Jun 2025 20:19:10 GMT60杞帴http://www.aygfsteel.com/dada2007/archive/2007/03/13/103621.html澶уぇ澶уぇTue, 13 Mar 2007 12:25:00 GMThttp://www.aygfsteel.com/dada2007/archive/2007/03/13/103621.htmlhttp://www.aygfsteel.com/dada2007/comments/103621.htmlhttp://www.aygfsteel.com/dada2007/archive/2007/03/13/103621.html#Feedback0http://www.aygfsteel.com/dada2007/comments/commentRss/103621.htmlhttp://www.aygfsteel.com/dada2007/services/trackbacks/103621.html杞帴涓綃囷紝鍥犱負(fù)榪欑瘒鏂囩珷紜疄鍐欏緱濂斤紝

java璁捐妯″紡涔婼ingleton(鍗曟?

瀹氫箟:
Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓涓被Class鍙湁涓涓疄渚嬪瓨鍦ㄣ?

鍦ㄥ緢澶氭搷浣滀腑錛屾瘮濡傚緩绔嬬洰褰?鏁版嵁搴撹繛鎺ラ兘闇瑕佽繖鏍風(fēng)殑鍗曠嚎紼嬫搷浣溿?br />
榪樻湁, singleton鑳藉琚姸鎬佸寲; 榪欐牱錛屽涓崟鎬佺被鍦ㄤ竴璧峰氨鍙互浣滀負(fù)涓涓姸鎬佷粨搴撲竴鏍峰悜澶栨彁渚涙湇鍔★紝姣斿錛屼綘瑕佽鍧涗腑鐨勫笘瀛愯鏁板櫒錛屾瘡嬈℃祻瑙堜竴嬈¢渶瑕佽鏁幫紝鍗曟佺被鑳藉惁淇濇寔浣忚繖涓鏁幫紝騫朵笖鑳絪ynchronize鐨勫畨鍏ㄨ嚜鍔ㄥ姞1錛屽鏋滀綘瑕佹妸榪欎釜鏁板瓧姘鎬箙淇濆瓨鍒版暟鎹簱錛屼綘鍙互鍦ㄤ笉淇敼鍗曟佹帴鍙g殑鎯呭喌涓嬫柟渚跨殑鍋氬埌銆?br />
鍙﹀鏂歸潰錛孲ingleton涔熻兘澶熻鏃犵姸鎬佸寲銆傛彁渚涘伐鍏鋒ц川鐨勫姛鑳斤紝

Singleton妯″紡灝變負(fù)鎴戜滑鎻愪緵浜?jiǎn)杩欐牱瀹炵幇鐨勫彲鑳姐備嬌鐢⊿ingleton鐨勫ソ澶勮繕鍦ㄤ簬鍙互鑺傜渷鍐呭瓨錛屽洜涓哄畠闄愬埗浜?jiǎn)瀹炰緥鐨勪釜鏁板Q屾湁鍒╀簬Java鍨冨溇鍥炴敹錛坓arbage collection錛夈?br />
鎴戜滑甯稿父鐪嬪埌宸ュ巶妯″紡涓被瑁呭叆鍣?class loader)涓篃鐢⊿ingleton妯″紡瀹炵幇鐨?鍥犱負(fù)琚鍏ョ殑綾誨疄闄呬篃灞炰簬璧勬簮銆?br />

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


CODE:

public class Singleton {銆銆
聽(tīng) 聽(tīng) private Singleton(){}銆銆
聽(tīng) 聽(tīng) //鍦ㄨ嚜宸卞唴閮ㄥ畾涔夎嚜宸變竴涓疄渚嬶紝鏄笉鏄緢濂囨紵銆銆
聽(tīng) 聽(tīng) //娉ㄦ剰榪欐槸private 鍙緵鍐呴儴璋冪敤銆銆
聽(tīng) 聽(tīng) private static Singleton instance = new Singleton();銆銆
聽(tīng) 聽(tīng) //榪欓噷鎻愪緵浜?jiǎn)涓涓緵澶栭儴璁塊棶鏈琧lass鐨勯潤(rùn)鎬佹柟娉曪紝鍙互鐩存帴璁塊棶銆銆銆銆
聽(tīng) 聽(tīng) public static Singleton getInstance() {銆銆銆銆
聽(tīng) 聽(tīng) 聽(tīng) return instance; 銆銆銆銆
聽(tīng) } 聽(tīng) 聽(tīng)
}





絎簩縐嶅艦寮?

CODE:

public class Singleton { 銆銆
聽(tīng) private static Singleton instance = null;銆銆
聽(tīng) public static synchronized Singleton getInstance() {銆銆
聽(tīng) //榪欎釜鏂規(guī)硶姣斾笂闈㈡湁鎵鏀硅繘錛屼笉鐢ㄦ瘡嬈¢兘榪涜鐢熸垚瀵硅薄錛屽彧鏄涓嬈°銆銆 銆銆銆
聽(tīng) //浣跨敤鏃剁敓鎴愬疄渚嬶紝鎻愰珮?shù)簡(jiǎn)鏁堢巼锛併銆
聽(tīng) if (instance==null)銆銆銆銆
聽(tīng) 聽(tīng) 聽(tīng) instance錛漬ew Singleton();銆銆
聽(tīng) 聽(tīng) 聽(tīng) return instance; 銆銆
聽(tīng) }
}




浣跨敤Singleton.getInstance()鍙互璁塊棶鍗曟佺被銆?br />
涓婇潰絎簩涓艦寮忔槸lazy initialization錛屼篃灝辨槸璇寸涓嬈¤皟鐢ㄦ椂鍒濆Singleton錛屼互鍚庡氨涓嶇敤鍐嶇敓鎴愪簡(jiǎn)銆?br />
娉ㄦ剰鍒發(fā)azy initialization褰㈠紡涓殑synchronized錛岃繖涓猻ynchronized寰堥噸瑕侊紝濡傛灉娌℃湁synchronized錛岄偅涔堜嬌鐢╣etInstance()鏄湁鍙兘寰楀埌澶氫釜Singleton瀹炰緥銆傚叧浜巐azy initialization鐨凷ingleton鏈夊緢澶氭秹鍙?qiáng)double-checked locking (DCL)鐨勮璁猴紝鏈夊叴瓚h呰繘涓姝ョ爺絀躲?br />
涓鑸涓虹涓縐嶅艦寮忚鏇村姞瀹夊叏浜涖?br />

浣跨敤Singleton娉ㄦ剰浜嬮」錛?br />鏈夋椂鍦ㄦ煇浜涙儏鍐典笅錛屼嬌鐢⊿ingleton騫朵笉鑳借揪鍒癝ingleton鐨勭洰鐨勶紝濡傛湁澶氫釜Singleton瀵硅薄鍚屾椂琚笉鍚岀殑綾昏鍏ュ櫒瑁呰澆錛涘湪EJB榪欐牱鐨勫垎甯冨紡緋葷粺涓嬌鐢ㄤ篃瑕佹敞鎰忚繖縐嶆儏鍐碉紝鍥犱負(fù)EJB鏄法鏈嶅姟鍣紝璺↗VM鐨勩?br />
鎴戜滑浠UN鍏徃鐨勫疇鐗╁簵婧愮爜(Pet Store 1.3.1)鐨凷erviceLocator涓轟緥紼嶅井鍒嗘瀽涓涓嬶細(xì)

鍦≒et Store涓璖erviceLocator鏈変袱縐嶏紝涓涓槸EJB鐩綍涓嬶紱涓涓槸WEB鐩綍涓嬶紝鎴戜滑媯(gè)鏌ヨ繖涓や釜ServiceLocator浼?xì)鍙戠幇鍐呭宸笉澶氬Q岄兘鏄彁渚汦JB鐨勬煡璇㈠畾浣嶆湇鍔★紝鍙槸涓轟粈涔堣鍒嗗紑鍛紵浠旂粏鐮旂┒瀵硅繖涓ょServiceLocator鎵嶅彂鐜板尯鍒細(xì)鍦╓EB涓殑ServiceLocator鐨勯噰鍙朣ingleton妯″紡錛孲erviceLocator灞炰簬璧勬簮瀹氫綅錛岀悊鎵褰撶劧搴旇浣跨敤Singleton妯″紡銆備絾鏄湪EJB涓紝Singleton妯″紡宸茬粡澶卞幓浣滅敤錛屾墍浠erviceLocator鎵嶅垎鎴愪袱縐嶏紝涓縐嶉潰鍚慦EB鏈嶅姟鐨勶紝涓縐嶆槸闈㈠悜EJB鏈嶅姟鐨勩?br />
Singleton妯″紡鐪嬭搗鏉ョ畝鍗曪紝浣跨敤鏂規(guī)硶涔熷緢鏂逛究錛屼絾鏄湡姝g敤濂斤紝鏄潪甯鎬笉瀹規(guī)槗錛岄渶瑕佸Java鐨勭被 綰跨▼ 鍐呭瓨絳夋蹇墊湁鐩稿綋鐨勪簡(jiǎn)瑙c?br />



澶уぇ 2007-03-13 20:25 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 荃湾区| 嘉兴市| 河东区| 盐边县| 泰来县| 桃园市| 浙江省| 抚州市| 安福县| 惠安县| 余干县| 铜山县| 交城县| 甘肃省| 防城港市| 承德市| 祁连县| 县级市| 金溪县| 镇平县| 修水县| 大城县| 平南县| 扬州市| 青川县| 宜城市| 博乐市| 洪湖市| 香河县| 沂源县| 金阳县| 扎兰屯市| 象州县| 阿合奇县| 政和县| 郧西县| 宜都市| 揭西县| 古蔺县| 萍乡市| 凌源市|