锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩人妻无码精品久久久不卡 ,国产综合精品久久亚洲,亚洲欧美伊人久久综合一区二区 http://www.shnenglu.com/init/category/17180.htmlGraphics|EngineDev|GameDev|2D&3D Art zh-cnFri, 03 May 2013 19:10:22 GMTFri, 03 May 2013 19:10:22 GMT60Some Design Pattern 鈪?/title><link>http://www.shnenglu.com/init/archive/2012/11/10/195023.html</link><dc:creator>鎯呯粷鏍艱皟(fresmaster)</dc:creator><author>鎯呯粷鏍艱皟(fresmaster)</author><pubDate>Sat, 10 Nov 2012 11:37:00 GMT</pubDate><guid>http://www.shnenglu.com/init/archive/2012/11/10/195023.html</guid><wfw:comment>http://www.shnenglu.com/init/comments/195023.html</wfw:comment><comments>http://www.shnenglu.com/init/archive/2012/11/10/195023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/init/comments/commentRss/195023.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/init/services/trackbacks/195023.html</trackback:ping><description><![CDATA[<p><font size="3">璁捐妯″紡鏄叧浜庡艦寮忓寲涓浜涢氱敤杞歡瑙e喅鏂規(guī)錛屼負(fù)鏃ュ父宸ョ▼浠誨姟鐨勮璁烘彁渚涘彲渚涘弬鑰冪殑閫氱敤妗嗘灦銆?/font></p> <p><font size="3"><strong>涓銆丼ingleton鍗曚歡妯″紡</strong> -鍒涘緩鍨?/font></p> <p><font size="3">銆婅璁℃ā寮忋嬩腑鎸囧嚭錛歋ingleton妯″紡鐨勬剰鍥撅細(xì)淇濊瘉涓涓被浠呮湁涓涓疄渚嬶紝騫舵彁渚涗竴涓闂畠鐨勫叏灞璁塊棶鐐廣?/font></p> <p><font size="3">瀵逛竴浜涚被鏉ヨ錛屽彧鏈変竴涓疄渚嬫槸寰堥噸瑕佺殑錛屾庝箞鎵嶈兘淇濊瘉涓涓被鍙湁涓涓疄渚嬪茍涓旇繖涓疄渚嬫槗浜庤璁塊棶錛岄鍏堬紝涓涓叏灞鍙橀噺浣垮緱涓涓璞″彲浠ヨ璁塊棶錛屽叾嬈″氨鏄庝箞淇濊瘉鍙湁 涓涓疄渚嬶紝涓涓洿濂界殑鏂規(guī)硶鏃惰綾昏嚜韜礋璐d繚瀛樺畠鐨勫敮涓瀹炰緥錛岃繖涓被鍙互淇濊瘉娌℃湁鍏朵粬瀹炰緥鍙互琚垱寤猴紝騫朵笖浠栨彁渚涗竴涓闂瀹炰緥鐨勬柟娉曘傝繖涓氨鏄疭ingleton妯″紡銆?/font></p> <p><font size="3">        褰撳ぇ閲忕殑綾繪垨鑰呮ā鍧楅渶瑕佽闂竴涓叏灞瀵硅薄鏃訛紝浣跨敤鍗曢棿妯″紡錛?/font></p> <p><font size="3">        褰撹繖涓敮涓鐨勫疄渚嬪簲璇ユ槸閫氳繃瀛愮被鍖栧彲鎵╁睍鐨勶紝騫朵笖瀹㈡埛搴旇鏃犻渶鏇磋鏀逛唬鐮佸氨鑳戒嬌鐢ㄤ竴涓墿灞曠殑瀹炰緥鏃訛紝浣跨敤鍗曢棿妯″紡</font></p> <p><font size="3">涓鑸粨鏋?</font><a href="file:///C:/Users/init/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles8DD692/12.jpg"><font size="3"><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/1_thumb_2.jpg"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1_thumb" border="0" alt="1_thumb" src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/1_thumb_thumb.jpg" width="587" height="209" /></a></font></a></p> <p><font size="3">綾誨寘鍚簡(jiǎn)鎸囧悜瀹冨敮涓瀹炰緥鐨勬寚閽堬紝瀹氫箟涓涓狪nstance鎿嶄綔錛屽厑璁稿鎴瘋闂畠鐨勫敮涓瀹炰緥錛孖nstance鏄竴涓被鎿嶄綔,閫氳繃鎻愪緵涓涓猻tatic鐨勬帴鍙f潵鑾峰彇瀹炰緥銆?/font></p> <p><font size="3"></font> </p> <p><font size="3">鍦ㄨ璁℃父鎴忓紩鎿庢椂錛屽浜庣汗鐞嗗璞★紝濡傛灉綾葷殑姣忎竴涓璞′唬琛ㄤ竴涓創(chuàng)鍥懼璞★紝姣忔閮借皟鐢ㄥ嚱鏁頒粠鏂囦歡鍔犺澆錛屽娍蹇呴犳垚鎬ц兘涓嬮檷銆佹氮璐瑰唴瀛樸備負(fù)浜?jiǎn)纭繚姣忎釜绾圭悊鍔犺浇涓嬈★紝鍙互浣跨敤鍗曚歡妯″紡錛岃綾昏嚜宸辮礋璐e畠鐨勫垱寤猴紝鍦ㄨ闂嚱鏁頒腑鎴彇錛屼嬌鐢↙azy Initiation錛?褰撶鏈夌殑瀹炰緥涓虹┖鏃訛紝鎵嶈繘琛屽垱寤猴紝褰撶劧榪樿媯(gè)鏌ユ槸鍚︿負(fù)絀烘椂瑕佸姞閿侊紝鍚﹀垯鍦ㄧ珵浜夋椂浼?xì)鍑虹庮C袱涓嚎紼嬪悓鏃跺父瑙佽岃鍞竴鐨勫疄渚嬪彉鎴愬涓?/font></p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre><span style="color: #000000">#ifndef _SINGLEONTEXTURE_H_ </span><span style="color: #0000ff">#define</span> _SINGLEONTEXTURE_H_ <span>class SingletonTexture{ </span><span>public: </span><span style="color: #0000ff">static</span> SingletonTexture* Instance();<span style="color: #008000">//</span><span style="color: #008000">鍏ㄥ眬璁塊棶鐐?/span> <span>protected: SingletonTexture();</span><span style="color: #008000">//</span><span style="color: #008000">鑷繁璐熻矗鍒涘緩</span> <span>private: </span><span style="color: #0000ff">static</span> SingletonTexture* m_instance;<span style="color: #008000">//</span><span style="color: #008000">淇濆瓨鑷繁鐨勪竴涓疄渚?/span> <span style="color: #000000">}; </span><span style="color: #0000ff">#endif</span> _SINGLEONTEXTURE_H_</pre></div> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> </div> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre>#include <windows.h><span> #include "</span><span style="color: #800000">iostream</span><span style="color: #800000">"</span> <span style="color: #0000ff">using</span> <span>namespace std; #include </span><span style="color: #800000">"</span><span style="color: #800000">Singleton.h</span><span>" SingletonTexture</span>* SingletonTexture::m_instance =<span style="color: #000000"> NULL; SingletonTexture::SingletonTexture (){ cout</span><<<span style="color: #800000">"</span><span style="color: #800000">SingletonTexture Created!</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; } SingletonTexture</span>*<span style="color: #000000"> SingletonTexture::Instance (){ </span><span style="color: #0000ff">if</span>(m_instance ==<span style="color: #000000"> NULL){ m_instance </span>= <span>new SingletonTexture(); cout</span><<<span style="color: #800000">"</span><span style="color: #800000">m_instance == NULL</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; } </span><span>return m_instance; } </span><span>int main(){ SingletonTexture</span>* ST =<span style="color: #000000"> SingletonTexture::Instance (); system(</span><span style="color: #800000">"</span><span style="color: #800000">pause</span><span>"); </span><span style="color: #0000ff">return</span> <span>0; }</span></pre></div> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/_thumb_2.jpg"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_thumb" border="0" alt="_thumb" src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/_thumb_thumb.jpg" width="647" height="131" /></a></p> <p><font size="3"></font> </p> <p><font size="3">榪欐牱鍙敤鍒涘緩涓涓潪鏈湴鐨勯潤(rùn)鎬佸璞″氨鍙互錛屼絾鏄叿浣撶殑鍒涘緩鏃墮棿鏃犳硶紜畾錛岃В鍐沖姙娉曞氨鏄妸璁塊棶榪欎釜鍗曚歡綾葷殑琛屼負(fù)灝佽鍦ㄤ竴涓嚱鏁板唴錛屽綋璋冪敤浜?jiǎn)杩欎釜鍑芥暟鏃跺Q屾墠瀵瑰崟浠剁被榪涜鐪熸鐨勫垱寤猴紝</font></p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre><span>class SingletonTexture{ </span><span>public: SingletonTexture </span>&<span style="color: #000000">Instance(){ </span><span>static SingletonTexture Obj; </span><span>return Obj; } </span><span>private錛? SingletonTexture(); }錛?/span></pre></div> <p> </p> <p><font size="3">瀵逛簬絎竴縐嶆柟娉曠敱浜庝嬌鐢ㄤ簡(jiǎn)綾葷殑闈?rùn)鎬佹垚鍛橈紝鍦ㄥ唴瀛樹腑闄や簡(jiǎn)姣忎釜瀵硅薄鑷繁鐨勬暟鎹垚鍛樹互澶栵紝榪樹細(xì)淇濈暀涓浠芥湁鍏蟲墍鏈夌汗鐞嗗璞′俊鎭垪琛紝铏界劧浣跨敤浜?jiǎn)鎸囬拡锛屼絾鏄斪兒庢病鏈壘c誨啀浠庤繖涓被緇ф壙涓嬪幓錛岃屼笖鎵鏈夌殑瀵硅薄閮芥槸涓涓被錛岀浉浜掍箣闂存病鏈夎祫婧愰噴鏀劇殑鍏堝悗闂錛屽氨涓嶄細(xì)鍑虹幇鐢變簬閲婃斁欏哄簭鍑虹幇鎮(zhèn)┖闂銆備絾鏄敱浜庡悓鏃跺鍏ㄩ儴鐨勭汗鐞嗚繘琛屽鐞嗭紝鍙兘浼?xì)閫犳垚璧勬簮璐熻嵎榪囬噸錛岃寤虹珛涓涓棩蹇楋紱鑰岀浜岀鏂規(guī)硶姣旇緝絎﹀悎瑕佹眰銆?/font></p> <p><font size="3">浣跨敤鍗曚歡妯″紡錛岃屼笉綆鍗曠殑鍒涘緩涓涓叏灞瀵硅薄鎴栬呮寚閽堬紝棣栧厛閫氳繃綆鍗曠殑鍑芥暟璁塊棶鍙橀噺姣斿湪鎵鏈夋枃浠朵腑澹版槑extern綆鍗曪紝鑰屼笖榪樺彲浠ユ帶鍒跺彉閲忓垵濮嬪寲鐨勬椂闂達(dá)紱鍏舵浣跨敤鎸囬拡鑰屼笉鏄敤瀵硅薄鐨勮瘽錛屽彲浠ラ氳繃C++瀵瑰璞¤繘琛屽畬鍏ㄧ殑璁塊棶錛屾湁鏇村ソ鐨勮闂帶鍒訛紝渚嬪瀵圭被姣忎竴嬈$殑璁塊棶榪涜鐩戞帶錛涙渶鍚庤繕鍙互鍒涘緩singleton綾葷劧鍚庡啀媧劇敓錛屽彲浠ュ啀淇濊瘉鍩虹被浠ュ強(qiáng)闆嗘垚綾葷殑鏉′歡涓嬶紝鎵╁厖鍩虹被銆?/font></p> <p><font size="3"></font> </p> <p><font size="3"><strong>浜屻丗acade錛堝瑙傦級(jí)妯″紡</strong>-瀵硅薄緇撴瀯鍨嬫ā寮?/font></p> <p><font size="3">銆婅璁℃ā寮忋嬩腑鎻愬埌澶栬妯″紡鐨勬剰鍥炬槸涓哄瓙緋葷粺涓殑涓緇勬帴鍙f彁渚涗竴涓竴鑷寸殑鐣岄潰錛孎acade妯″紡瀹氫箟浜?jiǎn)涓涓珮灞傛帴鍙o紝榪欎釜鎺ュ彛浣垮緱榪欎釜瀛愮郴緇熸洿鍔犲鏄撲嬌鐢ㄣ?/font></p> <p><font size="3">瀹炵敤鎬э細(xì)</font></p> <p><font size="3">1.褰撲綘瑕佷負(fù)涓涓鏉傚瓙緋葷粺鎻愪緵涓涓畝鍗曟帴鍙f椂錛屽瓙緋葷粺寰寰瑕佷笉鏂紨鍖栬屽彉鐨勫鏉傦紝澶у鏁版ā寮忎嬌鐢ㄦ椂閮戒細(xì)浜х敓鏇村皬鐨勭被錛岃繖浣垮緱瀛愮郴緇熸洿鍏鋒湁閲嶇敤鎬э紝涔熸洿瀹規(guī)槗瀵瑰瓙緋葷粺榪涜瀹氬埗錛屼絾鏄繖涔熺粰閭d簺涓嶉渶瑕佸畾鍒跺瓙緋葷粺鐨勭敤鎴峰甫鏉ヤ簡(jiǎn)涓浜涗嬌鐢ㄤ笂鐨勫洶闅撅紝Facade鍙互鎻愪緵涓涓畝鍗曠殑緙虹渷瑙嗗浘錛岃繖涓瑙嗗浘瀵瑰ぇ澶氭暟鐢ㄦ埛宸茬粡澶熶簡(jiǎn)錛岃岄偅浜涢渶瑕佹洿澶氱殑瀹氬埗鐨勭敤鎴峰彲浠ヨ秺榪嘑acade榪欎竴灞傘?/font></p> <p><font size="3">2.瀹㈡埛紼嬪簭涓庢娊璞$被鐨勫疄鐜伴儴鍒嗕箣闂村瓨鍦ㄥ緢澶х殑渚濊禆鎬с傚紩鍏acade妯″紡灝嗚繖涓瓙緋葷粺涓庡鎴蜂互鍙?qiáng)鍏朵粬鐨勫瓙绯痪l熷垎紱伙紝鍙互鎻愰珮瀛愮郴緇熺殑鐙珛鎬у拰鍙Щ妞嶆с?/font></p> <p><font size="3">3.褰撲綘闇瑕佹瀯寤轟竴涓眰嬈$粨鏋勭殑瀛愮郴緇熸椂錛屼嬌鐢╢acade妯″紡瀹氫箟瀛愮郴緇熺殑姣忓眰鐨勫叆鍙g偣銆傚鏋滃瓙緋葷粺涔嬮棿鏄浉浜掍緷璧栫殑錛屽彲浠ヨ浠栦滑閫氳繃facade榪涜閫氳錛屼粠鑰岀畝鍖栦簡(jiǎn)浠栦滑涔嬮棿鐨勪緷璧栧叧緋匯?/font></p> <p><font size="3">鍦ㄨ璁″叿鏈変竴瀹氬鏉傚害鐨勫浘褰㈠紩鎿庢椂錛屽畠涔熷叿鏈夋墿灞曞拰鍙樺寲鐨勬綔鍦ㄥ彲鑳斤紝鍥犳浼?xì)鋴慑緱鏁翠釜绯痪l熶箣闂寸殑閫氫俊鍜岀浉浜掍緷璧栧鍔狅紝瀵艱嚧緋葷粺澶嶆潅錛岀伒媧繪ч檷浣庯紝浣跨敤Facade妯″紡灝嗚澶氬鏉傛у拰鍙樺寲闅愯棌璧鋒潵錛岄珮搴﹀皝瑁呭浘褰㈠紩鎿庯紝浣垮浘褰㈠紩鎿庤繖涓瀛愮郴緇熸洿鍔犲鏄撲嬌鐢紝鍚屾椂鐢變簬榪欎竴瀛愮郴緇熺嫭涓鏃犱簩錛屽簲褰撲綔涓轟竴涓猄ingleton銆?</font></p> <p><font size="3">涓轟簡(jiǎn)浣跨被涔嬮棿鐨勭浉鍏蟲э紙鑰﹀悎鎬э級(jí)杈懼埌鏈灝忥紝鏈夊繀瑕佷嬌鐢‵acade鎴栫鐞嗗櫒錛屽綋鏁翠釜瀛愮郴緇熼渶瑕佽繘琛屽ぇ鐨勬敼鍔ㄦ垨鑰呮槸鏇挎崲鐨勬椂鍊欙紝澶嶆潅鐨勭浉鍏蟲у氨浼?xì)漶旂敓闂锛岄潰鍚戝璞〗E嬪簭璁捐鍦ㄧ被鐨勮寖鍥村唴瀵瑰疄鐜版敼鍔ㄨ繘琛屼簡(jiǎn)淇濇姢錛屼絾鏇村箍娉涚殑鏀瑰姩淇濇姢闇瑕佷竴縐嶆柊鐨勮寖寮忥紝Facade妯″紡鍦ㄦ洿澶ц妯′笂瑙e喅浜?jiǎn)闈㈠悜瀵硅薄缂柦E嬫墍淇濇姢鐨勫悓綾婚棶棰樸傚疄鐜癋acade綾葷殑棣栬鍘熷垯鏄細(xì)灝介噺閬垮厤瀛愮郴緇熷唴閮ㄧ被瀵瑰鐨勬毚闇層?/font></p> <p><font size="3">緇撴瀯錛?/font></p> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/facade_2.jpg"><font size="3"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="facade" border="0" alt="facade" src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/facade_thumb.jpg" width="641" height="363" /></font></a></p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre><span style="color: #000000">#ifndef _FACADE_H_ </span><span style="color: #0000ff">#define</span> _FACADE_H_ <span style="color: #0000ff">class</span><span style="color: #000000"> SubSystemOne{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: SubSystemOne(){ } </span>~<span style="color: #000000">SubSystemOne(){ } </span><span style="color: #0000ff">void</span><span style="color: #000000"> Operator(); }; </span><span style="color: #0000ff">class</span><span style="color: #000000"> SubSystemTwo{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: SubSystemTwo(){ } </span>~<span style="color: #000000">SubSystemTwo(){ } </span><span style="color: #0000ff">void</span><span style="color: #000000"> Operator(); }; </span><span style="color: #0000ff">class</span><span style="color: #000000"> Facade{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: Facade(); </span>~<span style="color: #000000">Facade(); </span><span style="color: #0000ff">void</span><span style="color: #000000"> Operator(); </span><span style="color: #0000ff">private</span><span style="color: #000000">: SubSystemOne </span>*<span style="color: #000000">so; SubSystemTwo </span>*<span style="color: #000000">st; }; </span><span style="color: #0000ff">#endif</span> _FACADE_H_</pre></div> <p> </p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre>#include <span style="color: #800000">"</span><span style="color: #800000">windows.h</span><span style="color: #800000">"</span><span style="color: #000000"> #include </span><iostream> <span style="color: #0000ff">using</span> <span style="color: #0000ff">namespace</span><span style="color: #000000"> std; #include </span><span style="color: #800000">"</span><span style="color: #800000">Facade.h</span><span style="color: #800000">"</span> <span style="color: #0000ff">void</span><span style="color: #000000"> SubSystemOne::Operator(){ cout</span><<<span style="color: #800000">"</span><span style="color: #800000">SubSystemOne Operator!</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; } </span><span style="color: #0000ff">void</span><span style="color: #000000"> SubSystemTwo::Operator(){ cout</span><<<span style="color: #800000">"</span><span style="color: #800000">SubSystemTwo Operator!</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; } Facade::Facade(){ so </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> SubSystemOne(); st </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> SubSystemTwo(); } Facade::</span>~<span style="color: #000000">Facade (){ delete so; delete st; } </span><span style="color: #0000ff">void</span><span style="color: #000000"> Facade::Operator (){ so</span>-><span style="color: #000000">Operator(); st</span>-><span style="color: #000000">Operator(); } </span><span style="color: #0000ff">int</span><span style="color: #000000"> main(){ Facade </span>* facade = <span style="color: #0000ff">new</span><span style="color: #000000"> Facade(); facade</span>-><span style="color: #000000">Operator (); system(</span><span style="color: #800000">"</span><span style="color: #800000">pause</span><span style="color: #800000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">return</span> <span style="color: #800080">0</span><span style="color: #000000">; }</span></pre></div><font size="3"></font><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_4.jpg"><font size="3"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="鏈懡鍚? border="0" alt="鏈懡鍚? src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_thumb_1.jpg" width="665" height="103" /></font></a> <p><font size="3"></font> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_4.jpg"><font size="3"></font></a> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_4.jpg"><font size="3"></font></a> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_4.jpg"><font size="3"></font></a> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3">                                                                                                                                      <br /><br /><br />   Facade妯″紡鍦ㄩ珮灞傛彁渚涗簡(jiǎn)涓涓粺涓鐨勬帴鍙o紝鏇村儚鏄竴涓鐞嗙被錛岃В钘曚簡(jiǎn)緋葷粺錛岃璁℃ā寮忎腑榪樻湁鍙﹀涓縐峂ediator妯″紡鍜孎acade妯″紡鏈夌被浼煎湴鏂癸紝浣嗘槸Mediator 涓昏鐩殑鏄璞¢棿鐨勮闂В鑰︺?/font></p> <p> </p> <p><font size="3"><strong>涓夈丼tate錛堢姸鎬侊級(jí)妯″紡-</strong> 瀵硅薄琛屼負(fù)妯″紡</font></p> <p><font size="3">銆婅璁℃ā寮忋嬩腑鎸囧嚭state 妯″紡鍏佽涓涓璞″湪鍏跺唴閮ㄧ姸鎬佹敼鍙樻椂鏀瑰彉瀹冪殑琛屼負(fù)銆傚璞$湅璧鋒潵浼間箮淇敼浜?jiǎn)瀹冪殑绫汇?/font></p> <p><font size="3">閫傜敤鎬?/font></p> <p><font size="3">涓涓璞$殑琛屼負(fù)鍙栧喅浜庡畠鐨勭姸鎬侊紝騫朵笖瀹冨繀欏誨湪榪愯鏃跺埢鏍規(guī)嵁鐘舵佹敼鍙樺畠鐨勮涓猴紱</font></p> <p><font size="3">涓涓搷浣滀腑鍚湁搴炲ぇ鐨勫鍒嗘敮鐨勬潯浠惰鍙ワ紝涓旇繖浜涘垎鏀緷璧栦簬璇ュ璞$殑鐘舵侊紝榪欎釜鐘舵侀氬父鐢ㄤ竴涓垨鑰呭涓灇涓懼父閲忚〃紺恒傞氬父錛屾湁澶氫釜鎿嶄綔鍖呭惈榪欎竴鐩稿悓鐨勬潯浠剁粨鏋勩俿tate妯″紡灝嗘瘡涓涓潯浠跺垎鏀斁鍏ヤ竴涓嫭绔嬬殑綾諱腑錛屼嬌寰椾綘鍙互鏍規(guī)嵁瀵硅薄鑷韓鐨勬儏鍐靛皢瀵硅薄鐨勭姸鎬佷綔涓轟竴涓璞★紝榪欎竴瀵硅薄鍙互涓嶄緷璧栧叾浠栧璞¤岀嫭绔嬪彉鎹€?/font></p> <p><font size="3">鍦ㄦ父鎴忎腑錛岀▼搴忓憳闇瑕佸鐞嗘父鎴忕姸鎬佽屼笉鏂殑瀹炴椂榪借釜闂錛岀姸鎬佸湪鍒氬紑濮嬬殑鏃跺欓氬父鏄畝鍗曠殑鏋氫婦錛屽叾琛屼負(fù)瀹炵幇鍩轟簬switch…case緇撴瀯鐨勯夋嫨錛岀劧鍚庡綋鐘舵佺殑鏁伴噺澧炲ぇ錛岀淮鎶や竴緇剆witch…case璇彞浼?xì)鏄竴浠跺紓甯稿洶闅懼茍涓斿嚭閿欑巼杈冮珮鐨勪簨鎯呫傦紝鑰屼笖鐘舵侀昏緫涓庡姩浣滃疄鐜版病鏈夊垎紱伙紝鍔ㄤ綔鐨勪唬鐮佺洿鎺ュ啓鍦ㄧ姸鎬佺殑閫昏緫涓紝灝嗕嬌緋葷粺鐨勫彲鎵╁睍鎬у拰緇存姢鎬фц兘鍙樹綆銆俿tate妯″紡灝嗙姸鎬侀昏緫涓庡姩浣滃疄鐜板垎紱誨紑鏉ワ紝褰撲竴涓搷浣滀腑鑽淮鎶ゅぇ閲忕殑case鍒嗘敮璇彞錛屽茍涓旇繖浜涘垎鏀鍙ヤ緷璧栦簬瀵硅薄鐨勭姸鎬侊紝state妯″紡灝嗘瘡涓涓垎鏀兘鐙珛灝佽鍒扮嫭绔嬬殑綾諱腑銆?/font></p> <p><font size="3">緇撴瀯錛?/font></p> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/state_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="state" border="0" alt="state" src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/state_thumb.jpg" width="823" height="417" /></a></p> <p><font size="3"></font> </p> <p> </p> <p>紺轟緥錛?/p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre><span style="color: #000000">#ifndef _STATE_H_ </span><span style="color: #0000ff">#define</span> _STATE_H_ <span style="color: #0000ff">class</span><span style="color: #000000"> State; </span><span style="color: #0000ff">class</span><span style="color: #000000"> Context{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: Context(State </span>*<span style="color: #000000">ps); </span>~<span style="color: #000000">Context(); </span><span style="color: #0000ff">void</span><span style="color: #000000"> Request(); </span><span style="color: #0000ff">void</span> ChangeState(State *<span style="color: #000000">ps); </span><span style="color: #0000ff">private</span><span style="color: #000000">: State </span>*<span style="color: #000000">m_state; }; </span><span style="color: #0000ff">class</span><span style="color: #000000"> State{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: State(){} </span><span style="color: #0000ff">virtual</span> ~<span style="color: #000000">State(){} </span><span style="color: #0000ff">virtual</span> <span style="color: #0000ff">void</span> Handle(Context *context)=<span style="color: #800080">0</span><span style="color: #000000">; }; </span><span style="color: #0000ff">class</span> StateA : <span style="color: #0000ff">public</span><span style="color: #000000"> State{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: StateA(){} </span>~<span style="color: #000000">StateA(){} </span><span style="color: #0000ff">void</span> Handle(Context *<span style="color: #000000">context); }; </span><span style="color: #0000ff">class</span> StateB : <span style="color: #0000ff">public</span><span style="color: #000000"> State{ </span><span style="color: #0000ff">public</span><span style="color: #000000">: StateB(){} </span>~<span style="color: #000000">StateB(){} </span><span style="color: #0000ff">void</span> Handle(Context *<span style="color: #000000">context); }; </span><span style="color: #0000ff">#endif</span> _STATE_H_</pre></div> <p> </p> <p> </p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><pre>#include <windows.h><span style="color: #000000"> #include </span><iostream> <span style="color: #0000ff">using</span> <span style="color: #0000ff">namespace</span><span style="color: #000000"> std; #include </span><span style="color: #800000">"</span><span style="color: #800000">State.h</span><span style="color: #800000">"</span><span style="color: #000000"> Context::Context (State </span>*<span style="color: #000000">ps) :m_state(ps){ } Context::</span>~<span style="color: #000000">Context (){ delete m_state; } </span><span style="color: #0000ff">void</span><span style="color: #000000"> Context::Request (){ </span><span style="color: #0000ff">if</span>(m_state!=<span style="color: #000000">NULL){ m_state</span>->Handle (<span style="color: #0000ff">this</span><span style="color: #000000">); } } </span><span style="color: #0000ff">void</span> Context::ChangeState (State *<span style="color: #000000">ps){ </span><span style="color: #0000ff">if</span>(m_state!=<span style="color: #000000">NULL){ delete m_state; m_state </span>=<span style="color: #000000"> NULL; } m_state </span>=<span style="color: #000000"> ps; } </span><span style="color: #0000ff">void</span> StateA::Handle (Context *<span style="color: #000000">context){ cout</span><<<span style="color: #800000">"</span><span style="color: #800000">Handle By StateA!</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; </span><span style="color: #0000ff">if</span>(context!=<span style="color: #000000">NULL){ context</span>->ChangeState (<span style="color: #0000ff">new</span><span style="color: #000000"> StateB()); } } </span><span style="color: #0000ff">void</span> StateB::Handle (Context *<span style="color: #000000">context){ cout</span><<<span style="color: #800000">"</span><span style="color: #800000">Handle By StateA!</span><span style="color: #800000">"</span><<<span style="color: #000000">endl; </span><span style="color: #0000ff">if</span>(context!=<span style="color: #000000">NULL){ context</span>->ChangeState (<span style="color: #0000ff">new</span><span style="color: #000000"> StateA()); } } </span><span style="color: #0000ff">int</span><span style="color: #000000"> main(){ State </span>*pstate = <span style="color: #0000ff">new</span><span style="color: #000000"> StateA(); Context </span>*pcontext = <span style="color: #0000ff">new</span><span style="color: #000000"> Context(pstate); pcontext</span>-><span style="color: #000000">Request (); pcontext</span>-><span style="color: #000000">Request (); pcontext</span>-><span style="color: #000000">Request (); delete pcontext; system(</span><span style="color: #800000">"</span><span style="color: #800000">pause</span><span style="color: #800000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">return</span> <span style="color: #800080">0</span><span style="color: #000000">; }</span></pre></div> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"><font size="3"></font> </div> <p><a href="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_7.jpg"><font size="3"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="鏈懡鍚? border="0" alt="鏈懡鍚? src="http://www.shnenglu.com/images/cppblog_com/init/Windows-Live-Writer/7410006a494d_D694/%E6%9C%AA%E5%91%BD%E5%90%8D_thumb_2.jpg" width="665" height="114" /></font></a></p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3"></font> </p> <p><font size="3">      <br /><br /><br /><br /> state妯″紡寰堝ソ鐨勫疄鐜頒簡(jiǎn)瀵硅薄鐨勭姸鎬侀昏緫鍜屽姩浣滃垎紱伙紝鐘舵侀昏緫鍒嗗竷鍦╯tate鐨勬淳鐢熺被涓疄鐜幫紝鑰屽姩浣滃疄鐜板垯鍙互鏀懼湪Context綾諱腑瀹炵幇錛坰tate媧劇敓綾諱腑闇瑕佹湁涓涓狢ontext鎸囬拡錛夛紝浣垮緱涓よ呯殑鍙樺寲鐩鎬簰鐙珛錛屾敼鍙楽tate鐨勭姸鎬侀昏緫鍙互寰堝鏄撶殑鏈嶇敤Context鐨勫姩浣滐紝涔熷彲浠ュ啀涓嶅獎(jiǎng)鍝峴tate媧劇敓綾葷殑鍓嶆彁涓嬪垱寤篊ontext鐨勫瓙綾繪潵鏇存敼鎴栨浛鎹㈠姩浣滃疄鐜般?/font></p> <p><font size="3">State妯″紡闂涓昏鏄昏緫鍒嗘暎鍖栵紝鐘舵侀昏緫鍒嗗竷鍒頒簡(jiǎn)鍚勪釜state 瀛愮被涓紝寰堥毦鐪嬪垁鍒版暣涓姸鎬侀昏緫鍥撅紝甯︽潵浜?jiǎn)浠g爜鐨劸l存姢闂銆?/font></p><img src ="http://www.shnenglu.com/init/aggbug/195023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/init/" target="_blank">鎯呯粷鏍艱皟(fresmaster)</a> 2012-11-10 19:37 <a href="http://www.shnenglu.com/init/archive/2012/11/10/195023.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Design.Patternshttp://www.shnenglu.com/init/archive/2012/03/16/168109.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Fri, 16 Mar 2012 11:45:00 GMThttp://www.shnenglu.com/init/archive/2012/03/16/168109.htmlhttp://www.shnenglu.com/init/comments/168109.htmlhttp://www.shnenglu.com/init/archive/2012/03/16/168109.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/168109.htmlhttp://www.shnenglu.com/init/services/trackbacks/168109.html闃呰鍏ㄦ枃

鎯呯粷鏍艱皟(fresmaster) 2012-03-16 19:45 鍙戣〃璇勮
]]>
久久精品成人欧美大片| 无码人妻精品一区二区三区久久久 | 性欧美大战久久久久久久久| 久久久久久久91精品免费观看| 色婷婷久久久SWAG精品| 无码专区久久综合久中文字幕 | 久久精品国产亚洲综合色| 91超碰碰碰碰久久久久久综合| 四虎影视久久久免费| 精品久久久久香蕉网| 久久亚洲2019中文字幕| 国内精品久久久久久久97牛牛| 久久久无码精品亚洲日韩软件| 久久天天躁狠狠躁夜夜avapp| 曰曰摸天天摸人人看久久久| 久久精品国产亚洲av麻豆图片| 亚洲国产精品久久久久| 久久亚洲AV成人无码| 草草久久久无码国产专区| 亚洲AV无码久久精品蜜桃| 精品无码人妻久久久久久| 久久婷婷五月综合色奶水99啪 | 亚洲精品乱码久久久久久蜜桃| 久久婷婷五月综合色高清| 91麻豆国产精品91久久久| 国产精品日韩深夜福利久久| 狠狠色婷婷综合天天久久丁香| 国内精品综合久久久40p| 欧美国产成人久久精品| 精品久久久久久国产牛牛app| 国产精品无码久久久久久| 久久久久久国产精品免费无码| 精品久久久中文字幕人妻| 久久丫忘忧草产品| 超级碰碰碰碰97久久久久| 伊人久久大香线蕉AV一区二区| 久久青青草原精品国产软件| 国产毛片久久久久久国产毛片 | 色婷婷综合久久久久中文| 久久精品一本到99热免费| 婷婷久久五月天|