锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲av高清漫画,亚洲制服丝袜在线播放,亚洲片一区二区三区http://www.tkk7.com/wyz191/category/19355.html璧板悜涓鏉¢氬線JAVA鐨勪笉褰掕礬...zh-cnWed, 14 May 2008 12:12:22 GMTWed, 14 May 2008 12:12:22 GMT60Template Method妯℃澘鏂規(guī)硶妯″紡 http://www.tkk7.com/wyz191/articles/template_method.htmljava_铦堣潏java_铦堣潏Thu, 08 May 2008 09:39:00 GMThttp://www.tkk7.com/wyz191/articles/template_method.htmlhttp://www.tkk7.com/wyz191/comments/199294.htmlhttp://www.tkk7.com/wyz191/articles/template_method.html#Feedback0http://www.tkk7.com/wyz191/comments/commentRss/199294.htmlhttp://www.tkk7.com/wyz191/services/trackbacks/199294.html
琛屼負(fù)鍨嬫ā寮忔秹鍙?qiáng)鍒敖帡娉曞拰瀵硅薄闂磋亴璐g殑鍒嗛厤銆傚皢娉ㄦ剰鍔涗粠鎺у埗嫻佽漿縐誨埌瀵硅薄闂寸殑鑱旂郴鏂瑰紡涓婃潵銆?br />
       琛屼負(fù)妯″紡鍒嗕負(fù)錛?span style="font-weight: bold; color: red">琛屼負(fù)綾繪ā寮?/span>鍜?span style="font-weight: bold; color: red">琛屼負(fù)瀵硅薄妯″紡銆?span style="font-weight: bold">琛屼負(fù)綾繪ā寮忎嬌鐢?span style="color: brown">緇ф壙鏈哄埗鍦ㄧ被闂村垎媧捐涓?/span>錛?span style="font-weight: bold">琛屼負(fù)瀵硅薄妯″紡浣跨敤瀵硅薄澶嶅悎鑰屼笉鏄戶鎵褲?/span>

Template Method妯℃澘鏂規(guī)硶妯″紡

       Template Method妯℃澘鏂規(guī)硶妯″紡浠嬬粛錛?br />
       Template Method妯℃澘鏂規(guī)硶妯″紡鏄竴縐嶈涓哄瀷妯″紡錛屽叿浣撶偣璇存槸琛屼負(fù)綾誨瀷妯″紡銆備富瑕佽В鍐沖湪杞歡鏋勫緩榪囩▼涓紝瀵逛簬鏌愪竴欏逛換鍔★紝甯稿父鏈夌ǔ瀹氱殑鏁翠綋鎿嶄綔緇撴瀯錛屼絾鍚勪釜瀛愭楠ゅ嵈鏈夊緢澶氭敼鍙樼殑闇姹傦紝鎴栬呯敱浜庡浐鏈夌殑鍘熷洜鑰屾棤娉曞拰浠誨姟鐨勬暣浣撶粨鏋勫悓鏃跺疄鐜般?br />
       GoF銆婅璁℃ā寮忋嬩腑璇撮亾錛氬畾涔変竴涓搷浣滀腑鐨勭畻娉曠殑楠ㄦ灦錛岃屽皢涓浜涙楠ゅ歡榪熷埌瀛愮被涓俆emplate Method浣垮緱瀛愮被鍙互涓嶆敼鍙樹竴涓畻娉曠殑緇撴瀯鍗沖彲閲嶅畾涔夎綆楁硶鐨勬煇浜涚壒瀹氭楠?br />
       Template Method妯″紡鐨勭粨鏋?br />

       瀹氫箟鍦烘櫙

       鍗曠湅緇撴瀯涓嶅ソ鐞嗚В錛屾垜浠潵緇撳悎紼嬪簭榪涜鍒嗘瀽銆傜幇鍦ㄥ畾涔変竴涓満鏅細(xì)鎴戞兂澶у閮界帺榪囨瀬鍝侀杞︼紙鎴戠浉褰撳枩嬈級(jí)銆傛父鎴忎腑鏈夊緢澶氱殑姹借濺錛屼絾鏄粠鎿嶄綔瑙掑害鐪嬪ぇ鍚屽皬寮傘傛棤闈炴槸璧鋒錛圫tartUp錛夈佽椹訛紙Run錛夈佸仠杞︼紙Stop錛夌瓑絳夎涓恒傛苯杞﹁椹剁殑鍔ㄤ綔涔嬮棿鍙兘瀛樺湪鐫宸紓錛屼緥濡傦細(xì)鎵嬪姩妗e拰鑷姩妗o紝浣嗘槸鎺ュ彛鏄竴鏍風(fēng)殑錛屾崲鍙ヨ瘽璇達(dá)紝鍩烘湰閮芥槸榪欏嚑涓姩浣溿傜粨鍚圱emplate Method妯″紡璁插氨鏄湪榪欎釜紼嬪簭涓紝緇撴瀯錛堝姹借濺鐨勬搷浣滐級(jí)鏄ǔ瀹氱殑錛屼絾鏄彉鍖栧湪浜庡悇涓瓙姝ラ錛堟搷浣滆涓虹殑鍏蜂綋瀹炵幇錛夈?br />
       紼嬪簭瀹炵幇涓庣粨鏋勫垎鏋?br />
       棣栧厛鎴戜滑闇瑕佷竴涓苯杞︾殑鎶借薄綾伙紙緇撴瀯鍥句腑鐨凙bstractClass錛?br />
       public abstract class AbstractCar

    {

        protected abstract string StartUp();

        protected abstract string Run();

        protected abstract string Stop();

 

        public void DriveOnTheRoad()

        {

            Console.WriteLine(StartUp());

            Console.WriteLine(Run());

            Console.WriteLine(Stop());

        }

}

鍦ㄨ繖孌典唬鐮佷腑錛屾娊璞℃柟娉昐tartUp銆丷un銆丼top鍙仛primitive operation錛堝師璇搷浣滐級(jí)錛屽畠浠槸鍦ㄥ瓙綾諱腑鐨勬墿灞曠偣錛屼緥濡傛垜浠緙栧啓涓杈咮ORA鐨勫疄鐜幫紝鍦ㄤ粬緇ф壙AbstractCar鍚庯紝鍙互鍦ㄨ繖鍑犱釜primitive operation涓婅繘琛岃嚜宸變釜姝ラ鐨勫疄鐜般?br />
AbstractCar涓殑DriveOnTheRoad鏂規(guī)硶鍙仛template method錛堟ā鏉挎柟娉曪級(jí)錛宼emplate method鐢╬rimitive operation瀹氫箟涓涓畻娉曪紝鏄浉瀵圭ǔ瀹氱殑閮ㄥ垎銆傦紙瀛愮被涓噸鏂板畾涔塸rimitive operation錛夈?br />
    鐒跺悗鎴戜滑瑕佸疄鐜頒竴杈咮ORA姹借濺錛堢粨鏋勫浘涓殑ConcreteClass錛?br />
    public class BORA : AbstractCar //緇ф壙

    {

        protected override string StartUp()

        {

            return "BORA is StartUp";

        }

 

        protected override string Run()

        {

            return "BORA is Running";

        }

 

        protected override string Stop()

        {

            return "BORA is Stoped";

        }

}

鎺ヤ笅鏉ユ垜浠繘琛屽鎴風(fēng)▼搴忕殑瀹炵幇

class Program

    {

        static void Main(string[] args)

        {

            ClientApp.Drive(new BORA());

            Console.Read();

        }

}

public class ClientApp

    {

        public static void Drive(AbstractCar car)

        {

            car.DriveOnTheRoad();

        }

}

榪愯緇撴灉濡備笅錛?br />
BORA is StartUp

BORA is Running

BORA is Stoped

   

Template Method瑕佺偣

1銆?nbsp; Template Method妯″紡鏄竴縐嶉潪甯稿熀紜鎬х殑璁捐妯″紡錛屽湪闈㈠悜瀵硅薄緋葷粺涓湁鐫澶ч噺鐨勫簲鐢ㄣ傚畠鐢ㄦ渶綆媧佺殑鏈哄埗錛?span style="font-weight: bold; color: red">铏氬嚱鏁扮殑澶氭佹?/span>錛変負(fù)浜?jiǎn)寰堝搴旂敤绋嬪簭妗嗘灦鎻愪緵浜?jiǎn)鐏墊椿鐨勬墿灞曠偣錛屾槸浠g爜澶嶇敤鏂歸潰鐨勫熀鏈疄鐜扮粨鏋勩?br />
2銆?nbsp; 闄や簡(jiǎn)鍙互鐏墊椿搴斿瀛愭楠ょ殑鍙樺寲澶栵紝“Don't call me.Let me Call you”鐨勫弽鍚戞帶鍒剁粨鏋勬槸Template Method鐨勫吀鍨嬪簲鐢ㄣ?#8220;Don’t call me.Let me Call you”鏄寚涓涓埗綾昏皟鐢ㄤ竴涓瓙綾葷殑鎿嶄綔錛岃屼笉鏄浉鍙嶃?br />
3銆?nbsp; 鍦ㄥ叿浣撳疄鐜版柟闈紝琚玊emplate Method璋冪敤鐨勮櫄鏂規(guī)硶鍙互鍏鋒湁瀹炵幇錛屼篃鍙互娌℃湁浠諱綍瀹炵幇錛堟娊璞℃柟娉曘佺函铏氭柟娉曪級(jí)錛屼絾涓鑸帹鑽愬皢瀹冧滑璁劇疆涓簆rotected鏂規(guī)硶銆傚彲浠ユ病鏈夊叿浣撳疄鐜扮殑鏂規(guī)硶搴旇縐頒負(fù)hook operation錛堥挬瀛愭搷浣滐級(jí)錛屾彁渚涗簡(jiǎn)緙虹渷鐨勮涓猴紝瀛愮被鍙互鍦ㄥ繀瑕佹椂榪涜鎵╁睍銆?br />
4銆?nbsp; 灝介噺鍑忓皯primitive operation錛屽洜涓洪渶瑕侀噸鏂板畾涔夌殑鎿嶄綔瓚婂錛屽鎴風(fēng)▼搴忓氨瓚婇暱

java_铦堣潏 2008-05-08 17:39 鍙戣〃璇勮
]]>
Singleton 妯″紡http://www.tkk7.com/wyz191/articles/Singleton.htmljava_铦堣潏java_铦堣潏Fri, 19 Jan 2007 06:36:00 GMThttp://www.tkk7.com/wyz191/articles/Singleton.htmlhttp://www.tkk7.com/wyz191/comments/94932.htmlhttp://www.tkk7.com/wyz191/articles/Singleton.html#Feedback0http://www.tkk7.com/wyz191/comments/commentRss/94932.htmlhttp://www.tkk7.com/wyz191/services/trackbacks/94932.htmlSingleton-------鍞竴錛?br />聽聽聽聽聽聽聽 浠ュ墠鏄晢鏍囨弧澶╅錛岀浉鍚岀殑鍟嗘爣闅懼厤閫犳垚渚墊潈錛岀洿浠庢湁鍟嗘爣淇濇姢娉曞悗錛屽氨淇濊瘉浜?jiǎn)涓嶄細(xì)鍐嶄骇鐢熃W浼佷笟浣跨敤鐩稿悓鐨勫晢鏍囷紱

璇村埌Singleton,灝變笉鑳戒笉鎻愬叏灞鍙橀噺銆傝繃鍘繪垜浠弽瀵瑰叏灞鍙橀噺錛屼負(fù)浠涔堝憿錛熷叏灞鍙橀噺涓鑸瓨鍦ㄤ笁涓棶棰橈細(xì)

<!--[if !supportLists]-->1.聽聽聽聽聽 鍛藉悕鍐茬獊錛屼篃鍙悕瀛楁薄鏌?/span><!--[endif]-->

<!--[if !supportLists]-->2.聽聽聽聽聽 鍒濆鍖栭『搴忎緷璧栭棶棰樸?/span><!--[endif]-->

<!--[if !supportLists]-->3.聽聽聽聽聽 榪滅▼浠g爜鑰﹀悎闂銆?/span><!--[endif]-->

瀵逛簬絎竴涓棶棰橈紝鍏跺疄瑙e喅寰堢畝鍗曪紝閫氳繃鍛藉悕瑙勮寖鍙互鏈夋晥瑙e喅銆傚彟澶栵紝鍊熷姪璇█鏈哄埗涔熷鏄撹В鍐籌紝渚嬪C++鐨?/span>namespace, class鎴?/span>struct鐨勯潤(rùn)鎬佹暟鎹垚鍛樸?/span>Java鍜?/span>C#鏍規(guī)湰涓嶅厑璁稿叏灞鍙橀噺錛屽茍涓斿紩鍏ュ寘鏈哄埗錛岄兘鍙互緙撹В鐢氳嚦娑堥櫎榪欎竴褰卞搷錛岃嚦灝戯紝Singleton瀵硅闂鐨勮В鍐沖姏搴﹀茍涓嶈秴榪囪繖浜涜璦鎻愪緵鐨勫唴寤烘満鍒躲?/span>

鍒濆鍖栭『搴忎緷璧栭棶棰樻槸涓涓浉褰撳井濡欑殑闂銆傚熷姪浜?/span>Singleton, 鎴戜滑鍙互寮哄埗鏌愪簺瀵硅薄鎸夐渶鍒涘緩錛岄伩鍏嶅垵濮嬪寲欏哄簭渚濊禆瀵艱嚧鐨勯棶棰樸傜劧鑰岋紝鍒濆鍖栭『搴忔槸涓涓浄鍖猴紝鎴戜滑蹇呴』灝忓績(jī)緲肩考鍦扮粫榪囧幓錛屼絾棣栧厛涓嶅簲璇ラ氳繃瀹炵幇鎶鏈潵瑙勯伩闂錛岃屽簲璇ヨ皟鏁磋璁★紝璁╁垵濮嬪寲欏哄簭闂鏍規(guī)湰涓嶅嚭鐜版墠鏄笂絳栥傜浜岋紝鏌愪簺鎯呭喌涓嬶紝鎴戜滑紜疄闇瑕佽閬垮垵濮嬪寲欏哄簭闂錛屾垜浠篃闇瑕佹竻閱掑湴璁よ瘑鍒拌瀹炵幇鎵嬫褰卞搷鍒扮殑浠g爜鑼冨洿錛屽彈鍏跺獎(jiǎng)鍝嶇殑閮ㄥ垎瓚婂崟涓瓚婂ソ銆?/span>

榪滅▼浠g爜鑰﹀悎錛岃繖鏄垜浠弽瀵瑰叏灞鍙橀噺鐨勬牳蹇?jī)闂銆備換浣曢暱璺濈鐨勮﹀悎閮藉皢瀵艱嚧浠g爜鐨勫彲璇繪т笅闄嶏紝榪涜屽彲鑳藉獎(jiǎng)鍝嶄唬鐮佺粨鏋勶紝瀵艱嚧緇撴瀯鍍靛寲錛屾棤鍔涘簲瀵瑰洜闇姹傚彉鍖栧鑷寸殑緇撴瀯璋冩暣銆傚緢閬楁喚錛?/span>Singleton騫朵笉鑳藉榪欎釜闂鏈変換浣曞府鍔┿傚綋鎴戜滑鍥為伩鍏ㄥ眬鍙橀噺鐨勬椂鍊欙紝浜嬪疄涓婏紝鎴戜滑涔熻閬夸簡(jiǎn)涓婅堪鐨勪笁涓棶棰樸傚彲鏄紝濡傛灉鎴戜滑涓嶈兘瀹℃厧鍦頒嬌鐢?/span>Singleton灝變細(xì)閲嶆柊钀藉叆鍏ㄥ眬鍙橀噺鐨勬牳蹇?jī)闄烽樧兏巺R?/span>

鍚嶇О Singleton
緇撴瀯
鎰忓浘 淇濊瘉涓涓被浠呮湁涓涓疄渚嬶紝騫舵彁渚涗竴涓闂畠鐨勫叏灞璁塊棶鐐廣?/font>
閫傜敤鎬?/font>
  • 褰撶被鍙兘鏈変竴涓疄渚嬭屼笖瀹㈡埛鍙互浠庝竴涓紬鎵鍛ㄧ煡鐨勮闂偣璁塊棶瀹冩椂銆?
  • 褰撹繖涓敮涓瀹炰緥搴旇鏄氳繃瀛愮被鍖栧彲鎵╁睍鐨勶紝騫朵笖瀹㈡埛搴旇鏃犻渶鏇存敼浠g爜灝辮兘浣跨敤涓涓墿灞曠殑瀹炰緥鏃躲?


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

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

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

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

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

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

public class Singleton {

銆銆private Singleton(){}

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

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

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

絎簩縐嶅艦寮?

public class Singleton {

銆銆private static Singleton instance = null;

銆銆public static synchronized Singleton getInstance() {

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

}

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

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

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

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



java_铦堣潏 2007-01-19 14:36 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲毛片av日韩av无码| 色噜噜亚洲男人的天堂| 在线视频亚洲一区| gogo免费在线观看| 亚洲AV无码之日韩精品| 亚洲欧洲中文日产| 亚洲一区免费视频| 亚洲一区二区三区免费在线观看| 免费一级做a爰片久久毛片潮| 在线观看亚洲免费| 粉色视频免费入口| 亚洲日韩在线第一页| eeuss影院免费直达入口| 亚洲韩国精品无码一区二区三区| 两性色午夜免费视频| 亚洲A∨无码一区二区三区| 男女男精品网站免费观看| 免费在线观看黄网| 久久九九久精品国产免费直播| 永久免费bbbbbb视频| 亚洲AV无码成人精品区狼人影院 | 免费AA片少妇人AA片直播| 亚洲最大免费视频网| 在线观看免费大黄网站| 特级无码毛片免费视频| 国产亚洲精品高清在线| 日韩视频在线观看免费| 亚洲日本乱码一区二区在线二产线| 亚洲人成网站免费播放| 黄网站色成年片大免费高清| 中文字幕亚洲综合久久男男| 曰批全过程免费视频播放网站| 亚洲一区二区三区91| 亚洲av无码成人精品区在线播放 | 国产又大又粗又硬又长免费 | 亚洲精品无码久久久久久久 | 亚洲高清乱码午夜电影网| 亚洲伊人久久综合影院| 91精品国产免费久久国语麻豆| 亚洲AV无码乱码国产麻豆| 在线看片v免费观看视频777|