锘??xml version="1.0" encoding="utf-8" standalone="yes"?>在线视频中文字幕久,国产日韩中文在线中文字幕,久久影院午夜精品http://www.aygfsteel.com/TiGERTiAN/category/21319.html----TiGERTiANzh-cnFri, 12 Oct 2007 12:49:51 GMTFri, 12 Oct 2007 12:49:51 GMT60Patterns In Javahttp://www.aygfsteel.com/TiGERTiAN/archive/2007/10/11/151998.htmlTiGERTiANTiGERTiANThu, 11 Oct 2007 04:40:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/10/11/151998.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/151998.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/10/11/151998.html#Feedback0http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/151998.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/151998.html

TiGERTiAN 2007-10-11 12:40 鍙戣〃璇勮
]]>
Abstract Factory Patternhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/26/113903.htmlTiGERTiANTiGERTiANThu, 26 Apr 2007 13:11:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/26/113903.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/113903.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/26/113903.html#Feedback0http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/113903.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/113903.html                                                   --Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Boston: Addison-Wesley, 1995, p.87        

璁茬櫧浜?jiǎn)锛尀鏄潰鍚戞娊璞℃帴鍙>~栫▼錛屾瘡涓緇勫璞¢兘瀹炵幇鍚屼竴涓帴鍙?nbsp;         
abstract class ResFactory {
   
abstract public DisplayDriver getDispDrvr();
   
abstract public PrintDriver getPrtDrvr();
}


class LowResFact extends ResFactory {
   
public DisplayDriver getDispDrvr() {
      
return new LRDD();
   }

   
public PrintDriver getPrtDrvr() {
      
return new LRPD();
   }

}


class HighResFact extends ResFactory {
   
public DisplayDriver getDispDrvr() {
      
return new HRDD();
   }

   
public PrintDriver getPrtDrvr() {
      
return new HRPD();
  }

}


姣斿璇存垜闇瑕佷竴涓樉鍗¢┍鍔ㄥ拰鎵撳嵃鏈洪┍鍔紝楂樻。鏈哄拰浣庢。鏈洪┍鍔ㄩ兘涓嶄竴鏍鳳紝浣嗘垜涓嶆兂鐢ㄥ緢澶歴witch鏉ラ夋嫨錛岃繖鏍峰緢楹葷儲(chǔ)錛岃屼笖鎵╁睍鏇撮夯鐑?chǔ)銆傞偅鎴戝氨瀹氫箟涓涓娊璞$被錛屽皢鎴戦渶瑕佽皟鐢ㄧ殑璧勬簮鍏ㄩ儴鏀懼湪閲岄潰錛屽垵濮嬪寲綾葷殑鏃跺欐垜浠彲浠ュ厛澹版槑涓涓?br>ResFactory factory;
褰撴垜浠渶瑕佷嬌鐢ㄩ珮妗f満鐨勬椂鍊欏氨
factory=new HighResFact();
浣跨敤浣庢。鏈虹殑鏃跺欏氨
factory=new LowResFact();

榪欐牱錛屽氨鍙互寰堟柟渚跨殑璋冪敤鑷繁鎯寵皟鐢ㄧ殑瀵硅薄錛岃屼笖涓嶇敤鑰冭檻鏈夋病鏈夋彁渚涚浉搴旀柟娉曪紝鍦ㄦ墿灞曞拰淇敼鐨勬椂鍊欐洿鍔犳柟渚匡紝鍥犱負(fù)鎶借薄鍜屽疄鐜板叏閮ㄥ垎寮浜?jiǎn)锛寴q欎篃鏄垜浠湪騫沖父緙栫▼褰撲腑闇瑕佹敞鎰忕殑銆?br>

                                                         

TiGERTiAN 2007-04-26 21:11 鍙戣〃璇勮
]]>
Bridge Patternhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/08/109226.htmlTiGERTiANTiGERTiANSun, 08 Apr 2007 06:27:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/08/109226.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/109226.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/08/109226.html#Feedback2http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/109226.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/109226.html妗ユ帴妯″紡錛屽紩鐢?#8220;鍥涗漢甯殑璇?#8221;灝辨槸 “decouple an abstraction from its implementation so that the two can vary independently”錛屾娊璞′笌琛屼負(fù)鍒嗙銆?br>
璇翠釜渚嬪瓙

瀹㈡埛鎯崇敾鍥撅紝鐢諱袱縐嶅渾鍜岀煩褰紝姣忕鐭╁艦閮借璋冪敤鐗瑰埆鐨勫垝綰匡紙draw_a_line()錛夋柟娉曪紝姣忎竴縐嶅渾涔熸槸銆傚鏋滃儚涓婇潰閭f牱錛屾槸涓嶆槸鎰熻娣蜂貢浜?jiǎn)鐐瑰Q熺湅鐪嬩笅闈㈢殑鍛€?br>
榪欎釜鏄笉鏄垝鏈嶇偣錛熺殑紜紝鍥懼艦鍜岀敾娉曢兘瀛樺湪涓涓瀵瑰簲鐨勫叧緋伙紝鎴戜滑瀹屽叏鍙互鎶婂浘褰㈣繖涓娊璞″拰鐢繪硶榪欎釜琛屼負(fù)鍒嗙錛岃屼笉闇瑕佷竴涓敾娉曞搴斿涓娊璞★紝濡備笂闈㈤偅涓?br>

public abstract class Shape
{
    
public abstract void draw();
}


//鐢葷偣鍜屽渾鐨勬柟娉?/span>
public abstract class ShapeDrawing
{
    
public abstract void draw_a_line();
    
public abstract void draw_a_circle();
}


public class ShapeDrawingSingleton
{
    
private static ShapeDrawing shapedrawingSingleton;
    
    
public ShapeDrawingSingleton(ShapeDrawing shapedrawing)
    
{
        shapedrawingSingleton
=shapedrawing;
    }

    
    
public static ShapeDrawing getShapeDrawing()
    
{
        
return shapedrawingSingleton;
    }

}


//鐢誨浘鏂規(guī)硶鍩虹被
public class VShape extends Shape
{
    
public ShapeDrawing shapedrawing;
    
    
public void setShapeDrawing()
    
{
        
this.shapedrawing=ShapeDrawingSingleton.getShapeDrawing();
    }

    
    
public ShapeDrawing getShapeDrawing()
    
{
        
return this.shapedrawing;
    }

}


public class V1Circle extends VShape
{
    
public Circle(){setShapeDrawing();}
    
    
public void draw()
    
{
        
//鐢╯hapedrawing鐢誨渾
        
//shapedrawing.draw_a_circle()
    }

}


//
//V1Rectangle鍜孷2緋誨垪鍙傜収涓婇潰鐨?br>//

public class DP1ShapeDrawing extends ShapeDrawing
{
    
public void draw_a_line(){};
    
public void draw_a_circle(){};
}


public class DP2ShapeDrawing extends ShapeDrawing
{
    
public void draw_a_line(){};
    
public void draw_a_circle(){};
}


ShapeDrawingSingleton shapedrawingSingleton
=new ShapeDrawingSingleton(new DP1ShapeDrawing());

V1Circle v1circle
=new V1Circle();
v1circle.draw();

//鍏朵粬鐨勭被浼間簬涓婇潰鐨?/span>




TiGERTiAN 2007-04-08 14:27 鍙戣〃璇勮
]]>
Strategy Patternhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/07/109118.htmlTiGERTiANTiGERTiANSat, 07 Apr 2007 09:23:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/07/109118.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/109118.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/07/109118.html#Feedback0http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/109118.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/109118.html榪欐牱緇熶竴灝嗗璞′氦緇欏浐瀹氭帴鍙o紝鑰屽閮ㄥ彧瑕佽皟鐢ㄨ繖涓帴鍙e嵆鍙?br>浠ヤ笅鏄?#8220;鍥涗漢甯?#8221;鐨勮娉曘?br>
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.[6]





public class TaskController {
  
public void process () {
     
// this code is an emulation of a
     
// processing task controller
     
// . . .
     
// figure out which country you are in
     CalcTax myTax;
     myTax
= getTaxRulesForUS();
     SalesOrder mySO
= new SalesOrder();
     mySO.process( myTax);// 褰撶劧浣犺繕鍙互璁﹎yTax=getTaxRulesForCan();榪欐牱mySo.process(myTax)灝變細(xì)鎸夌収鍔犳嬁澶х殑紼庣巼澶勭悊
  }

  
private CalcTax getTaxRulesForUS() {
     
// In real life, get the tax rules based on
     
// country you are in.  You may have the
     
// logic here or you may have it in a
     
// configuration file
     
// Here, just return a USTax so this
     
// will compile.
     return new USTax();
  }

}


public class SalesOrder {
   
public void process (CalcTax taxToUse) {
      
long itemNumber= 0;
      
double price= 0;

      
// given the tax object to use

      
// . . .

      
// calculate tax
      double tax=
         taxToUse.taxAmount( itemNumber, price);
   }

}


public abstract class CalcTax {
   
abstract public double taxAmount(
      
long itemSold, double price);
}


public class CanTax extends CalcTax {
   
public double taxAmount(
      
long itemSold, double price) {
      
// in real life, figure out tax according to
      
// the rules in Canada and return it
      
// here, return 0 so this will compile
      return 0.0;
   }

}

public class USTax extends CalcTax {
   
public double taxAmount(
      
long itemSold, double price) {
      
// in real life, figure out tax according to
      
// the rules in the US and return it
      
// here, return 0 so this will compile
      return 0.0;
   }

}


瀹為檯鏁翠釜Strategy鐨勬牳蹇?jī)閮ㄥ垎灏辨槸鎶借薄绫荤殑鋴社?浣跨敤Strategy妯″紡鍙互鍦ㄧ敤鎴烽渶瑕佸彉鍖栨椂,淇敼閲忓緢灝?鑰屼笖蹇?

Strategy鍜孎actory鏈変竴瀹氱殑綾諱技,Strategy鐩稿綆鍗曞鏄撶悊瑙?騫朵笖鍙互鍦ㄨ繍琛屾椂鍒昏嚜鐢卞垏鎹€侳actory閲嶇偣鏄敤鏉ュ垱寤哄璞°?/p>

Strategy閫傚悎涓嬪垪鍦哄悎:

1.浠ヤ笉鍚岀殑鏍煎紡淇濆瓨鏂囦歡;

2.浠ヤ笉鍚岀殑綆楁硶鍘嬬緝鏂囦歡;

3.浠ヤ笉鍚岀殑綆楁硶鎴幏鍥捐薄;

4.浠ヤ笉鍚岀殑鏍煎紡杈撳嚭鍚屾牱鏁版嵁鐨勫浘褰?姣斿鏇茬嚎 鎴栨鍥綽ar絳?/p>

TiGERTiAN 2007-04-07 17:23 鍙戣〃璇勮
]]>
Facade Patternhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108807.htmlTiGERTiANTiGERTiANThu, 05 Apr 2007 14:40:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108807.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/108807.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108807.html#Feedback0http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/108807.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/108807.html濡傛灉鏈変竴涓緢澶嶆潅鐨勭郴緇燂紝浣嗕綘鍙兂鐢ㄩ噷闈㈢殑涓閮ㄥ垎鍔熻兘錛屾庝箞鍔烇紵
鐢‵acade Pattern鎬濇兂錛屾妸涓浜涘鏉傜殑鍔熻兘妯″潡鍒嗗垎娓呮錛岀劧鍚庨噸鏂板啓涓涓姛鑳芥帴鍙f潵緇勭粐浣犳兂瑕佺殑榪欎簺鍔熻兘錛岃繖鏍峰氨鍙互寰堟柟渚跨殑榪涜璋冪敤錛屽姝ゆ柟渚挎竻妤氾紝浣曚箰鑰屼笉涓哄憿錛熷樋鍢?/p>

TiGERTiAN 2007-04-05 22:40 鍙戣〃璇勮
]]>
Adapter Patternhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108805.htmlTiGERTiANTiGERTiANThu, 05 Apr 2007 14:32:00 GMThttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108805.htmlhttp://www.aygfsteel.com/TiGERTiAN/comments/108805.htmlhttp://www.aygfsteel.com/TiGERTiAN/archive/2007/04/05/108805.html#Feedback0http://www.aygfsteel.com/TiGERTiAN/comments/commentRss/108805.htmlhttp://www.aygfsteel.com/TiGERTiAN/services/trackbacks/108805.htmlclass Circle extends Shape {
 
 
private XXCircle myXXCircle;
 
 
public Circle () {
   myXXCircle
= new XXCircle();
 }


 
void public display() {
    myXXCircle.displayIt();
 }

 
}



鏌愪漢鍐欎簡(jiǎn)涓涓猉XCircle綾伙紝鍜屾垜灝嗚鍐欑殑Circle綾誨姛鑳界浉鍚岋紝浣嗕粬娌℃湁緇ф壙Shape綾伙紝鎴戝浣曚嬌鐢ㄥ畠鐨勭被鑰屼笉鐢ㄩ噸鍐欏憿錛熻瘯鐢ˋdapter Pattern錛屽涓婃墍紺猴紝灝嗕粬鐨勬柟娉曞彉涓烘垜鐨凜ircle綾葷殑涓涓垚鍛樺彉閲忥紝榪欐牱灝卞敖鍙互璋冪敤瀹冪殑鏂規(guī)硶浜?jiǎn)銆傘傚搱鍝?

TiGERTiAN 2007-04-05 22:32 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 金坛市| 江山市| 抚远县| 东海县| 正镶白旗| 元朗区| 广东省| 时尚| 获嘉县| 镇雄县| 莎车县| 临西县| 洪洞县| 蒙城县| 奉化市| 津市市| 天等县| 中牟县| 梁山县| 甘南县| 牙克石市| 邮箱| 波密县| 永仁县| 竹山县| 奉贤区| 饶阳县| 兴仁县| 桃江县| 灵石县| 怀化市| 云林县| 隆回县| 乌鲁木齐市| 陕西省| 洞头县| 永安市| 壤塘县| 黎城县| 徐州市| 绍兴市|