锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产亚洲一区二区在线观看,久久丫精品国产亚洲av,亚洲一级黄色视频http://m.tkk7.com/clraychen/category/12821.htmlcontact us by sending email to clraychen@gmail.com eieig@hotmail.comzh-cnWed, 05 Mar 2008 09:28:16 GMTWed, 05 Mar 2008 09:28:16 GMT60Builder Pattern & Factory Methodhttp://m.tkk7.com/clraychen/archive/2008/02/26/182294.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Tue, 26 Feb 2008 12:25:00 GMThttp://m.tkk7.com/clraychen/archive/2008/02/26/182294.htmlhttp://m.tkk7.com/clraychen/comments/182294.htmlhttp://m.tkk7.com/clraychen/archive/2008/02/26/182294.html#Feedback0http://m.tkk7.com/clraychen/comments/commentRss/182294.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/182294.html
    綺楃矖鐪嬪畬涓閬嶈璁℃ā寮忕殑鏃跺欙紝瑙夊緱Builder Pattern鍜孎actory Method Pattern鏈夌偣娣鋒穯錛屽ソ鍍忚繖涓よ呴兘鏄皢澶嶆潅鐨勬瀯閫犺繃紼嬪睆钄芥帀錛屾渶緇堣繑鍥炰竴涓狢lient婊℃剰鐨勫璞★紝浣嗕粬浠殑鏈川鏄笉涓鏍風殑銆?br />     Builder Pattern鍙拡瀵逛竴涓被錛岃繖涓被鐨勭壒鐐規槸鏋勯犺搗鏉ヨ繃紼嬬壒鍒鏉傦紝鎵浠ュ皢鏋勯犵殑閮ㄥ垎鐙珛鍑烘潵錛屼笓闂ㄧ敤涓涓狟uilderClass鏉ヨ礋璐g敓鎴愬璞°?br />     Factory Method鏇村鐨勬槸閽堝鐢熸垚瀹炵幇鍚屼竴鎺ュ彛鐨勪竴緇勭被涓殑鏌愪釜銆傛湁鐐規嫍鍙o紝灝辨槸鍦ㄨ繍琛屾椂鐢熸垚姝g‘鐨勫璞°?br />     鎬葷粨涓嬫潵錛屽氨鏄疊uilder閽堝涓涓狢lass錛孎actory Method閽堝浠庝竴緇凜lass涓寫閫変竴涓?/span>銆?/span>


]]>
璁捐妯″紡鍒濊瘯錛圫igleton & Factory錛?/title><link>http://m.tkk7.com/clraychen/archive/2007/12/17/168231.html</link><dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator><author>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author><pubDate>Mon, 17 Dec 2007 06:55:00 GMT</pubDate><guid>http://m.tkk7.com/clraychen/archive/2007/12/17/168231.html</guid><wfw:comment>http://m.tkk7.com/clraychen/comments/168231.html</wfw:comment><comments>http://m.tkk7.com/clraychen/archive/2007/12/17/168231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/clraychen/comments/commentRss/168231.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/clraychen/services/trackbacks/168231.html</trackback:ping><description><![CDATA[<p>璁捐妯″紡鐪嬫噦浜嗭紝濂藉儚鏄病浠涔堢敤鐨勩傚彧鏈夊湪浣犵殑寮鍙戜腑榪愮敤璧鋒潵鎵嶆湁瀹冪殑鎰忎箟銆?/p> <p>铏界劧榪樻槸灝忚彍楦燂紝浣嗘棦鐒剁湅榪囦簡璁捐妯″紡錛岃繕鏄笇鏈涜兘鐢ㄨ搗鏉ョ殑銆?/p> <p>鎯沖仛涓嚜濞辮嚜涔愮殑j2ee鐨勪笢瑗褲?/p> <p>鍏充簬寰楀埌鏁版嵁搴撹繛鎺ラ儴鍒嗭紝涓寮濮嬭寰楁槸鐢ㄥ伐鍘傛ā寮忥紝鐢ㄥ伐鍘傛ā寮忓緱鍒癈onnection瀵硅薄錛岃瘯浜嗗嚑嬈″ソ鍍忎笉琛屻?/p> <p>鐒跺悗灝濊瘯鍗曟佹ā寮忥紝鍒涢犱簡涓涓狣atabaseGeneralServices綾伙紝鏉ユ彁渚涙暟鎹簱榪炴帴鍜屽叧闂暟鎹簱絳変竴浜涢氱敤鐨勬湇鍔°?br /> 涓鍒囨甯搞傛湁鐐瑰皬鎰熸偀錛屼唬鐮佸涓嬶紝甯屾湜楂樻墜鎸囩偣銆?/p> <p>package com.ClockWise.ray.persistence;</p> <p>import java.sql.Connection;<br /> import java.sql.PreparedStatement;<br /> import java.sql.ResultSet;<br /> import java.sql.SQLException;</p> <p>import javax.naming.InitialContext;<br /> import javax.naming.NamingException;<br /> import javax.sql.DataSource;</p> <p>public class  DatabaseGeneralServices {<br />  private DataSource ds;<br />  private InitialContext ic;<br />  <br />  private static DatabaseGeneralServices dgs = new DatabaseGeneralServices();<br />  <br />  <br />  private DatabaseGeneralServices()<span style="color: #0000ff"><strong>//use singleton pattern, so the constructor is private<br /> </strong></span>  { <br />    try{<br />       ic = new InitialContext ();<br />       ds = (DataSource)ic.lookup("java:jdbc/readshare<span style="color: #0000ff"><strong>");//get database connection</strong></span><br />   }catch(NamingException e){<br />    e.printStackTrace();<br />   }<br />  }<br />  <br />  public  Connection getConnection(){<br />   try{<br />    return ds.getConnection();<br />   }catch(SQLException e){<br />    e.printStackTrace();<br />   }<br />   return null;<br />  }<br />  <br />  public  void closeConnection(ResultSet rs,PreparedStatement ps,Connection conn){<br />      try{<br />       if(rs!=null){<br />        rs.close();<br />        }<br />       if(ps!=null){<br />        ps.close();<br />       }<br />       if(conn!=null){<br />        conn.close();<br />       }<br />      }catch(SQLException e ){<br />       e.printStackTrace();<br />      }<br />  }<br />  <br />  public static DatabaseGeneralServices getInstance()<span style="color: #339966"><span style="color: #0000ff"><strong>//get the sigleton instance</strong></span><br /> </span> {<br />   if(null==dgs){dgs= new DatabaseGeneralServices();}  <br />   return dgs;<br />  }</p> <p>}</p> <img src ="http://m.tkk7.com/clraychen/aggbug/168231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/clraychen/" target="_blank">紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/a> 2007-12-17 14:55 <a href="http://m.tkk7.com/clraychen/archive/2007/12/17/168231.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>3 Patternshttp://m.tkk7.com/clraychen/archive/2007/09/22/147396.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Sat, 22 Sep 2007 05:51:00 GMThttp://m.tkk7.com/clraychen/archive/2007/09/22/147396.htmlhttp://m.tkk7.com/clraychen/comments/147396.htmlhttp://m.tkk7.com/clraychen/archive/2007/09/22/147396.html#Feedback0http://m.tkk7.com/clraychen/comments/commentRss/147396.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/147396.htmlTemplate method pattern

浠庤繖涓ā寮忕殑鍚嶅瓧灝卞彲浠ョ煡閬撲釜澶ф錛?/span>Template璇存槑榪欎釜妯″紡鏈変竴涓ā鐗堬紝瀛愮被閮借鎸夌収鐖剁被鍒楀嚭鐨勫ぇ綰叉潵騫叉椿銆傚湪榪欎釜妯″紡涓紝鐖剁被閫氬父鏄?/span>abstract鐨勩備負浠涔堜笉鐢ㄦ帴鍙o紵鍥犱負瀵規煇浜涙墍鏈夊瓙綾婚兘瑕佺敤鍒扮殑鏂規硶錛岀埗綾諱腑灝辯粰鍑轟簡浠g爜錛岃屾帴鍙d腑鏄笉鑳芥湁鍏蜂綋瀹炵幇浠g爜鐨勩?/span>

鐖剁被涓湁涓涓葷殑鏂規硶灝辨槸鎵璋撶殑template method錛岃繖涓柟娉曢氬父琚0鏄庝負final錛岃繖鏍峰瓙綾誨氨鏃犳硶override瀹冿紝淇濊瘉浜嗗畠鐨勬潈濞佹с傝繖涓?/span>template method璋冪敤鍏跺畠鏂規硶錛岃繖浜?#8220;鍏跺畠鏂規硶”鍖呮嫭浜嗕笁涓被鍨嬶細

絎竴縐嶏紝鏄?/span>abstract綾誨瀷錛屽瓙綾婚渶瑕佹牴鎹嚜宸辯殑鎯呭喌瀹炵幇榪欓儴鍒嗕唬鐮侊紱

絎簩縐嶏紝鏄?/span>final鍨嬬殑錛岃繖縐嶆柟娉曠埗綾繪妸瀹冨啓姝諱簡錛屽瓙綾誨繀欏婚伒瀹堬紱

絎笁縐嶏紝灝辨槸鏅氭柟娉曪紝鏄?/span>optional鐨?/span>錛屽瓙綾誨彲浠ュ歡鐢ㄧ埗綾葷殑鏂規硶錛屼篃鍙互override鎺夊畠錛屽啓鑷繁鐨勪唬鐮侊紝榪欑optional鐨勬柟娉曠粰瀹冧竴涓悕瀛楀彨鍋?/span>hook銆?/span>

榪欎釜鐖剁被閫氬父鏄繖縐嶅艦鍔褲?/span>

abstract class AbstractClass{

  final void templateMethod(){

      a();

      b();

      c();

      …

}

    abstract void a();

    final void b(){}

    void c(){}

}

搴旇璇磋繖涓ā寮忔棦钑村惈鐫鏉冨▉鎬у拰鑷敱鎬с?/span>

Iterator and Composite Patterns

       榪欎釜妯″紡鐨勭爺絀跺璞℃槸Collection錛屽寘鎷?/span>ArrayList銆?/span>Array鐢氳嚦榪樻湁Hashmap絳夌瓑涓鍒?/span>java閲岄潰鐨勯泦鍚堝璞°?/span>Iterator鐨勭悊蹇墊槸鎶婇泦鍚堝璞′腑鐨勯亶鍘嗙瓑鍔熻兘鐙珛鎶藉彇鍑烘潵錛屽疄鐜頒竴涓?/span>Iterator鐨勬帴鍙o紝涓昏瀹炵幇next錛堬級鍜?/span>hasNext錛堬級涓や釜鏂規硶錛岃繖浜涗笢瑗垮拰鏁版嵁緇撴瀯閲岄潰鐨勪笢瑗垮熀鏈竴鏍楓?/span>

鑰屼互姝や負鍩虹鐨?/span>Composite Pattern鍏跺疄灝辨槸鏁版嵁緇撴瀯閲岄潰鏍戠殑姒傚康錛屾墍浠ヨ繖閲岀殑涓滆タ榪樻槸鎵炬湰鏁版嵁緇撴瀯涔︾湅鐪嬫洿濂姐?/span>

The State Pattern

       鍒濈湅榪欎釜妯″紡錛屽彂鐜伴噷闈㈡湁涓涓被浼?/span>UML涓姸鎬佸浘鐨勪笢瑗匡紝濡傚叾鍚嶅瓧錛岃繖涓ā寮忎富瑕佹弿榪板浣曞鐞嗗簲鐢ㄤ腑鍑虹幇鐨?#8220;鐘舵?#8221;銆?/span>

       瑙e喅鏂瑰紡鏄繖鏍風殑錛?/span>

.      絎竴姝ワ紝鍒涘緩涓涓彨鍋?/span>State鐨勬帴鍙?/span>錛岄噷闈㈠寘鍚粈涔堜笢瑗垮憿錛熻寰?/span>UML鐘舵佸浘涓彂鐢熺姸鎬佽漿鎹㈡椂綆ご涓婇潰閭d簺鏀瑰彉鐨勬潯浠訛紵鎶婅繖浜涙潯浠跺叏閮ㄨ漿鍖栦負鏂規硶錛岃〃紺哄綋榪欎釜鏉′歡鍙戠敓鏃訛紝鐘舵佽鎬庝箞鍙樸?/span>

       絎簩姝ワ紝姣忎釜鍏蜂綋鐨?/span>concreteState閮借瀹炵幇閮借瀹炵幇State榪欎釜鎺ュ彛銆傛庝箞瀹炵幇錛熷綋鐒訛紝state涓嶆槸鐙珛鍑虹幇鐨勶紝鎬繪湁涓涓妸瀹冧綔涓哄弬鏁扮殑綾伙紝閲岄潰鏈変釜縐佹湁鍙橀噺淇濆瓨褰撳墠鐨勭姸鎬侊紝鏆備笖灝辨妸瀹冪О浣?/span>currentState鍚с傛帴鍙d腑瀹氫箟鐨勬柟娉曪紝鍦?/span>concreteState涓繖鏍峰疄鐜幫細姣忎釜鏂規硶鏍規嵁鏉′歡瀹氫箟錛屽皢currentState鏀規垚鐩稿簲鐨勭姸鎬併?/span>

       浠ヤ笂鍏跺疄灝辨槸State Pattern鐨勭簿楂撱?/span>



]]>
another three patternshttp://m.tkk7.com/clraychen/archive/2007/09/18/146184.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Tue, 18 Sep 2007 07:48:00 GMThttp://m.tkk7.com/clraychen/archive/2007/09/18/146184.htmlhttp://m.tkk7.com/clraychen/comments/146184.htmlhttp://m.tkk7.com/clraychen/archive/2007/09/18/146184.html#Feedback0http://m.tkk7.com/clraychen/comments/commentRss/146184.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/146184.html 

Singleton Pattern

閽堝涓浜涘湪搴旂敤涓彧浼氭湁涓涓璞″瓨鍦ㄧ殑綾昏屾葷粨鐨勬ā寮忋?/span>

浠や漢鎰忔兂涓嶅埌鐨勬槸錛屽畠鏄氳繃澹版槑璇ョ被鐨勬瀯閫犲嚱鏁頒負縐佹湁榪欑鏂規硶鏉ュ疄鐜扮殑銆?/span>

鐤戦棶灝辨槸錛屾棦鐒舵瀯閫犲嚱鏁伴兘鎴愮鏈変簡錛岄偅鎬庝箞鏉ュ垱寤鴻繖涓被鐨勫璞″憿錛?/span>

瑙g瓟灝辨槸閫氳繃鍦ㄧ被涓0鏄庝竴涓潤鎬佹柟娉曪紝榪斿洖榪欎釜瀵硅薄銆?/span>

鍏稿瀷鐨勫啓娉曟槸

public static Singleton getInstance(){

 if(uniqueInstance==null){uniqueInstance = new Singleton();}

return uniqueInstance;

}

榪欎釜妯″紡鐨勭簿楂撳氨榪欎箞綆鍗曪紝鍓╀笅鐨勫氨鏄嚎紼嬪瀵硅薄鐨勬搷浣滃畨鍏紝瑕佹妸榪欎釜鏂規硶鍔犱笂synchronized鍏抽敭瀛椼?/span>

Command Pattern

涔︿腑鏄互槨愰鐐硅彍浣滄瘮鏉ヨ榪拌繖涓ā寮忕殑銆?/span>

鍏朵腑鐨勫姣旀蹇靛涓?/span>

Customer-------Client

Order------------Command

Waitress--------Invoker

Cook------------Receiver

Take order--------setCommand

orderUp-----------excute

鎬庝箞鏉ヨВ閲婂憿錛熻鐧戒簡錛屽氨鏄妸璋冪敤綾昏杈炬垚鐨勬搷浣滃皝瑁呮垚涓涓?/span>Command瀵硅薄錛屽氨鍍忕偣鑿滈偅寮犲崟瀛愪竴鏍鳳紝褰撶劧榪欎釜Command瑕佺鍚堜竴瀹氱殑瑙勫垯瀹炵幇Command鎺ュ彛錛岄噷闈㈤潪甯擱噸瑕佺殑涓涓柟娉曞氨鏄?/span>execute銆?/span>

setCommand鏂規硶鐩稿綋浜?/span>waitress鎶婅彍鍗曢掔粰浜嗗帹甯堬紝鍦ㄦ帴鏀惰呮柟闈粬鍙榪愯execute錛屽叿浣撳仛浠涔堜紶榪囨潵鐨?/span>command瀵硅薄閮藉凡緇忚瀹氬ソ浜嗐?/span>

Adapter & Façade

閫傞厤鍣ㄦā寮忓叾瀹炴病浠涔堝璇寸殑錛屽氨鏄鎶婁紶榪囧幓鐨勫璞¤瀹炵幇鎺ユ敹鑰呮敮鎸佺殑鏍煎紡錛岄偅涓牸寮忓疄闄呬笂灝辨槸涓涓帴鍙c?/span>

鑰?/span>Façade妯″紡鏄竴縐嶈鐢熺墿錛屽畠鐨勭洰鐨勬槸璁╂搷浣滅畝鍗曞寲銆傚皢涓緋誨垪涓嶅悓瀵硅薄涓殑鎿嶄綔鏁村悎錛屾彁渚涚粰鍏跺畠綾昏皟鐢ㄦ帴鍙d功涓婄殑渚嬪瓙鏄搴獎闄紝瑕佺湅閮ㄧ數褰憋紝瑕佸紑榪欎釜鐢靛櫒錛屽紑閭d釜鐢靛櫒錛岄氳繃Façade妯″紡錛屽皢瑕佺湅鐢靛獎鎵蹇呴』鐨勫姩浣滄暣鍚堣搗鏉ワ紝涓閿悶瀹氥傛槑鐧戒簡榪欑偣錛屼篃灝辯悊瑙d簡榪欎釜妯″紡銆?/span>



]]>
Decorator & Factoryhttp://m.tkk7.com/clraychen/archive/2007/09/10/144117.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Mon, 10 Sep 2007 15:21:00 GMThttp://m.tkk7.com/clraychen/archive/2007/09/10/144117.htmlhttp://m.tkk7.com/clraychen/comments/144117.htmlhttp://m.tkk7.com/clraychen/archive/2007/09/10/144117.html#Feedback0http://m.tkk7.com/clraychen/comments/commentRss/144117.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/144117.htmlDecorator Pattern鍏跺疄鏃╁氨鎺ヨЕ榪囦簡錛屼粠java鐨勮緭鍏ヨ鍙ヤ腑鍙涓鏂?/span>InputStream in = new BufferedInputStream(new FileInputStream(“test.txt”)); 鍏朵腑BufferedInputStream 鍜?/span>FileInputStream 閮芥槸InputStream鐨勫瓙綾伙紝閫氳繃鍖呭惈鍏崇郴錛岃澶栧洿鐨勭被鍖呭惈鍐呴儴閭d釜綾葷殑鍔熻兘鍙婃暟鎹紝璇寸殑褰㈣薄涓鐐癸紝灝辨槸鍦ㄥ唴閮ㄩ偅涓被澶栭潰鍔犱簡涓灞傝楗般傝繖涔熸槸瑁呴グ妯″瀷鏈鏍稿績鐨勬蹇點?/span>

Factory Pattern

涔︿腑涓句簡鍖硅惃搴楃殑渚嬪瓙錛屼竴寮濮嬬殑綾伙紝灝嗗埗浣滀笉鍚岀被鍨嬪尮钀ㄧ殑鏂規硶閮藉寘鍚湪閲岄潰錛屾暣涓被鏄懼緱寰堝啑浣欍傞『鐫姝e父鐨勬濊礬錛屽皢鍒朵綔鍖硅惃鐨勬柟娉曚粠榪欎釜綾婚噷闈㈠墺紱誨嚭鍘誨崟鐙艦鎴愪竴涓被錛岃繖涓被灝卞儚鐢熶駭瀵硅薄鐨勫伐鍘傦紝鍙浣犲憡璇夊畠璇ョ敓浜х殑浜у搧鐨勫瀷鍙鳳紝瀹冨氨鐢熶駭瀵瑰簲鐨勫璞″啀鍙戦佺粰瀹㈡埛銆?/span>

鎸夌収涔︿腑鐨勪緥瀛愶紝濡傛灉鍖硅惃搴楀紑鍦ㄥ悓涓涓煄甯備互鍐咃紝鍖硅惃鐨勯鍛沖鏍鳳紝閭d箞涓婅堪鐨勬ā寮忓緢濂藉湴瀹炵幇浜嗕笂闈㈢殑鍔熻兘銆備絾濡傛灉鏄繛閿佸簵錛屾瘡涓湴鏂圭殑椋庡懗涓嶅悓鍛紵……

鏄殑錛屾瘡涓湴鏂圭殑椋庡懗涓嶅悓錛屼絾鍚屼竴涓湴鏂逛笉鍚屽尮钀ㄧ殑縐嶇被鍗寸浉褰撴湁闄愩備篃灝辨槸璇村彲浠ユ湁涓涓尮钀ㄥ簵鐖剁被錛岀劧鍚庡悇鍦扮殑鍒嗗簵鏄繖涓埗綾葷殑瀛愮被銆傝屽叾涓渶閲嶈鐨勫埗浣滃尮钀ㄧ殑鏂規硶鍦ㄧ埗綾諱腑琚0鏄庝負铏氬嚱鏁幫紝鐢卞悇涓叿浣撶殑瀛愮被鏉ュ疄鐜般傝繖鏍?#8220;宸ュ巶”鍙堣鎼洖鍏蜂綋鐨勭被涓棿銆?/span>

鍏蜂綋濡備綍浣跨敤錛屾垜涓漢瑙夊緱鏄鐪嬫儏鍐電殑銆備笂闈袱涓槸宸ュ巶妯″紡鐨勪袱縐嶈〃鐜板艦寮忋?/span>

    瀵逛簬鍚庝竴縐嶆ā寮忥紝閲岄潰鐢ㄥ埌鐨勫璞★紝姣斿渚嬪瓙涓尮钀ㄧ殑鍘熸潗鏂欙紝鍚屾牱鍙互鐢ㄥ伐鍘傛ā寮忔潵瀹炵幇錛岃繖鏍風▼搴忕殑緇撴瀯灝辯浉褰撶伒媧諱簡銆?/span>



]]>
Observer Patternhttp://m.tkk7.com/clraychen/archive/2007/09/06/143153.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Thu, 06 Sep 2007 05:26:00 GMThttp://m.tkk7.com/clraychen/archive/2007/09/06/143153.htmlhttp://m.tkk7.com/clraychen/comments/143153.htmlhttp://m.tkk7.com/clraychen/archive/2007/09/06/143153.html#Feedback0http://m.tkk7.com/clraychen/comments/commentRss/143153.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/143153.html       榪欐槸銆?/span>Head First Design Pattern銆?/span>閲岄潰浠嬬粛鐨勭浜屼釜Pattern錛屽彨鍋?/span>Observer Pattern錛屽叾鏍稿績姒傚康灝辨槸涓縐嶄竴瀵瑰鐨勫叧緋匯?/span>

鍏朵腑鐨?#8220;涓”錛岀被浼間簬瀹氭姤綰哥郴緇熺殑鍙戦佹柟錛岃?#8220;澶?#8221;灝辨槸璁㈤槄鏂廣傚綋鏈夋柊鐨?#8220;鎶ョ焊”鏃訛紝鍙戦佹柟灝嗘渶鏂扮殑鎶ョ焊閫佽揪璁㈤槄鏂規墜涓傚彂閫佹柟緇存姢鐫涓涓闃呮柟鐨勫垪琛ㄣ?/span>

鏂囦腑閫氳繃涓涓皵璞$珯鐨勪緥瀛愭潵瑙h榪欎釜妯″紡銆?/span>WeatherData瀹炵幇Subject鎺ュ彛錛岄噷闈㈠寘鎷墍瑕佷紶閫佺殑private 鏁版嵁錛岃繕鏈夋敞鍐?/span>Observer鍜屽幓闄?/span>Observer鐨勬柟娉曘傚綋鏁版嵁鏈夋墍鏇存柊鏃惰皟鐢?/span>measurementChanged鏂規硶錛岃繖涓柟娉曞啀璋冪敤notifyObservers鏂規硶銆?/span>

鑰屽湪Observer閭g錛屾湁涓涓?/span>subject瀵硅薄鐨勭鏈夋暟鎹紝閫氳繃鏋勯犲嚱鏁板皢瑕佹敞鍐岀殑Subject浣滀負鍙傛暟鏉ュ瀹冭繘琛屽垵濮嬪寲錛屼互姝ゅ緩绔?/span>Observer鍜?/span>Subject鐨勮仈緋匯?/span>

鏈鍚庤繕浠嬬粛浜?/span>java閭e緩鐨?/span>Observer妯″紡銆傞氳繃緇ф壙Observable鏉ユ垚涓?/span>Subject錛岄氳繃瀹炵幇Observer鎺ュ彛鏉ユ垚涓?/span>Observer銆備絾鍏舵湁涓瀹氬紛鐥咃紝鍥犱負java涓嶆敮鎸佸緇ф壙錛岃繖灝遍檺鍒朵簡浣跨敤榪欎釜妯″紡鐨勭伒媧繪с傛墍浠ユ垜瑙夊緱浠ュ悗濡傛灉鐪熺殑鐢ㄥ埌Observer妯″紡榪樻槸鑷繁緙栫▼姣旇緝濂姐?/span>



]]>
the first patternhttp://m.tkk7.com/clraychen/archive/2006/07/06/56944.html紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/dc:creator>紱誨雞涔媟ay鐨勬妧鏈ぉ絀?/author>Thu, 06 Jul 2006 06:17:00 GMThttp://m.tkk7.com/clraychen/archive/2006/07/06/56944.htmlhttp://m.tkk7.com/clraychen/comments/56944.htmlhttp://m.tkk7.com/clraychen/archive/2006/07/06/56944.html#Feedback1http://m.tkk7.com/clraychen/comments/commentRss/56944.htmlhttp://m.tkk7.com/clraychen/services/trackbacks/56944.html 銆?/span> Head first design patterns 銆?/span> 涓鐩磋鏉熶箣楂橀榿錛屾葷畻鑰冨畬鏈熸湯鑰冭瘯銆傜劧鑰岋紝鎴戝嵈鍙堣寮濮嬪涔犺冪爺鐨勪笢瑗夸簡錛屾暣澶╃湅鏁板鐪嬬殑鍗佸垎澶存檿錛屾妸榪欐湰涔﹂噸鏂版嬁鏉ョ湅錛屾潈褰撹繛鐜敾鏉ョ湅銆?/span>

浠ュ墠宸茬粡鐪嬭繃涓ょ珷浜嗭紝瀹炲湪澶繃涔呰繙錛屽彧寰楅噸娓╀竴涓嬨?/span>

鍓嶉潰鐨?/span> Introduction 鍏跺疄鏄潪甯告湁鎰忔濈殑錛屽湪榪欏厛涓嶈禈榪頒簡銆?/span>

浠嬬粛鐨勭涓涓?/span> Pattern 鏄?/span> Strategy Pattern 銆?/span>

閫氳繃涓涓?/span> duck 鐨勪緥瀛愶紝鍦ㄨ榪?/span> Strategy Pattern 鐨勮繃紼嬩腑寮曞嚭浜嗕笁涓?/span> Design Principles

瀹冧滑鏄細

1錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽聽聽聽聽聽聽聽 Identify the aspects of your application that vary and separate them from what stays the same.

2錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽聽聽聽聽聽聽聽 Program to an interface, not an implementation.

3錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽聽聽聽聽聽聽聽 Favor composition over inheritance.

Duck 渚嬪瓙瀹岀編鍦頒綋鐜頒簡浠ヤ笂涓変釜 Principles 銆?/span>

涓寮濮?/span> Duck 綾繪槸榪欐牱鐨勶紝閲岄潰鏈変笁涓柟娉曪細 quack(), swim() 鍜?/span> display(), 鍏跺畠涓浜涚壒孌婄殑 Duck 瀛愮被緇ф壙榪欎釜鐖剁被錛屽茍閲嶈澆 display 鏂規硶鍘繪樉紺哄悇縐嶄笉鍚岀綾葷殑 Duck 銆?/span>

鐜板湪闇姹傚彉鏇達紝闇瑕佽涓浜?/span> Duck 鑳藉鏈夐鐨勮兘鍔涳紝鐞嗘墍褰撶劧鍦幫紝鍦ㄧ埗綾諱腑鍔犱笂浜?/span> fly() 榪欎釜鏂規硶銆備絾涓浜涗笉鑳介鐨?/span> Duck 綾誨嵈鍚屾椂鎷ユ湁浜?/span> fly() 鏂規硶錛岃繖鏄劇劧鏄笉瀵圭殑銆?/span>

鍙兘鏈変漢鎻愬嚭瑙e喅鐨勬柟娉曟槸閲嶈澆閭d簺涓嶉渶瑕?/span> fly() 鏂規硶鐨?/span> duck 綾葷殑 fly() 錛岃榪欎釜鏂規硶浠涔堜篃涓嶅仛錛屼絾浣犳湁娌℃湁鎯寵繃濡傛灉榪欎箞澶勭悊錛屼互鍚庡啀鍔犱竴浜涗笉闇瑕佷竴浜涙柟娉曠殑瀛愮被鏄笉鏄緢綣佺悙錛?/span>

涔熻鍙堟湁浜烘兂鍒頒簡錛屾妸 fly() 鍜?/span> quack() 鎻愬彇鍑烘潵錛岀紪紼?/span> interface 銆傚鏋滄煇涓瓙綾婚渶瑕佽繖涓兘鍔涘彲浠ュ幓 implement 榪欎釜 interface 銆?/span>

鏈夋病鏈夋兂榪囧悗鏋滐紵姣忎竴涓瓙綾婚兘瑕侀噸鍐?/span> fly() 鍜?/span> quack(),OO 鐨勪唬鐮侀噸鐢ㄧ殑鐗規ц崱鐒舵棤瀛樸?/span>

閭d粈涔堟墠鏄渶濂界殑瑙e喅涔嬮亾鍛紵錛燂紵

涔﹂噷闈㈢粰鍑轟簡絳旀銆?/span>

鎶?/span> fly() 鍜?/span> quack() 涓や釜鍔熻兘鎻愬彇鍑烘潵榪欎釜鎬濊礬鏄鐨勩?b style="mso-bidi-font-weight: normal">榪欓噷浣撶幇浜嗙涓涓?/span> Principle 銆傞鍏堝0鏄?/span> FlyBehavior() 鍜?/span> QuackBehavior() 涓や釜 interface 錛岀劧鍚庡疄鐜板悇縐?/span> fly 鍜?/span> quack 錛屾瘮濡?/span> FlyWithWings, FlyNoWay 錛?/span> Quack, Squeak 絳夌瓑銆?b style="mso-bidi-font-weight: normal">榪欓噷浣撶幇浜嗙浜屼釜 Principle 銆?/span>

鐜板湪鐨?/span> Duck 鐖剁被宸茬粡鍙樹簡錛岄噷闈㈡湁涓や釜縐佹湁鍙橀噺 FlyBehavior fb, 鍜?/span> QuackBehavior qb 銆?/span>

Duck 鐖剁被鐢氳嚦鍙互鐩存帴澹版槑鎴?/span> Abstract 綾伙紝褰撴湁瀛愮被緇ф壙瀹冪殑鏃跺欙紝鍙互鍦ㄦ瀯閫犲嚱鏁伴噷緇?/span> fb 鍜?/span> qb 鍒濆鍖栫殑鏃跺欑洿鎺ヨ祴緇欏畠闇瑕佺殑 fly 鍜?/span> quack 縐嶇被銆?b style="mso-bidi-font-weight: normal">榪欓噷浣撶幇浜嗙涓変釜 Principle 銆?/span>

灝忓皬鐨勪竴涓緥瀛愬凡緇忓垎鏋愮殑閭d箞涓撲笟錛岃鎴戝彈鐩婂尓嫻呫傚ソ涔︼紒



]]>
主站蜘蛛池模板: 两个人的视频高清在线观看免费| 国产综合免费精品久久久| 足恋玩丝袜脚视频免费网站| 亚洲熟伦熟女新五十路熟妇| 青青草97国产精品免费观看 | 特级做a爰片毛片免费看| 老汉色老汉首页a亚洲| 免费91最新地址永久入口| 亚洲午夜国产精品无码| 中文字幕成人免费高清在线| 久久精品亚洲男人的天堂| 特级毛片爽www免费版| 一本色道久久综合亚洲精品| a级毛片无码免费真人久久| 亚洲av无码成h人动漫无遮挡| 久久久久久久99精品免费| 亚洲黄色片在线观看| 中国在线观看免费高清完整版 | 自怕偷自怕亚洲精品| 免费不卡视频一卡二卡| 亚洲国产高清国产拍精品| 在线a亚洲v天堂网2018| 国产99久久久久久免费看| 亚洲天天在线日亚洲洲精| 无码日韩精品一区二区免费| 综合一区自拍亚洲综合图区| 亚洲XX00视频| 亚洲视频在线观看免费| 亚洲午夜成人精品无码色欲| 亚洲国产激情一区二区三区| 免费国产成人α片| 亚洲 暴爽 AV人人爽日日碰| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 香蕉免费在线视频| 亚洲精品电影在线| 国产网站在线免费观看| 99久久免费国产精精品| 亚洲成a人片在线观看精品| 亚洲国产精品一区二区三区久久| 日本不卡免费新一区二区三区| 亚洲日本va在线观看|