锘??xml version="1.0" encoding="utf-8" standalone="yes"?>伊人久久综在合线亚洲91 ,国产亚洲人成网站在线观看不卡 ,亚洲日产韩国一二三四区http://www.tkk7.com/thisliy/category/42334.htmlzh-cnThu, 05 Nov 2009 16:35:25 GMTThu, 05 Nov 2009 16:35:25 GMT60Java瑁呴グ妯″紡http://www.tkk7.com/thisliy/archive/2009/11/01/300543.htmlliyangliyangSun, 01 Nov 2009 02:38:00 GMThttp://www.tkk7.com/thisliy/archive/2009/11/01/300543.htmlhttp://www.tkk7.com/thisliy/comments/300543.htmlhttp://www.tkk7.com/thisliy/archive/2009/11/01/300543.html#Feedback0http://www.tkk7.com/thisliy/comments/commentRss/300543.htmlhttp://www.tkk7.com/thisliy/services/trackbacks/300543.html璇存槑錛?/span>         瑁呴グ妯″紡鏄湪涓嶅繀鏀瑰彉鍘熺被鏂囦歡鍜屼嬌鐢ㄧ戶鎵跨殑鎯呭喌涓嬶紝鍔ㄦ佺殑鎵╁睍涓涓璞$殑鍔熻兘銆傚畠鏄氳繃鍒涘緩涓涓寘瑁呭璞★紝涔熷氨鏄楗版潵鍖呰9鐪熷疄鐨勫璞°?br />         

瑁呴グ妯″紡鐨勭壒鐐癸紱

錛?錛?瑁呴グ瀵硅薄鍜岀湡瀹炲璞℃湁鐩稿悓鐨勬帴鍙c傝繖鏍峰鎴風瀵硅薄灝卞彲浠ヤ互鍜岀湡瀹炲璞$浉鍚岀殑鏂瑰紡鍜岃楗板璞′氦浜掋?br /> 錛?錛?瑁呴グ瀵硅薄鍖呭惈涓涓湡瀹炲璞$殑绱㈠紩錛坮eference錛?br /> 錛?錛?瑁呴グ瀵硅薄鎺ュ彈鎵鏈夌殑鏉ヨ嚜瀹㈡埛绔殑璇鋒眰銆傚畠鎶婅繖浜涜姹傝漿鍙戠粰鐪熷疄鐨勫璞°?br /> 錛?錛?瑁呴グ瀵硅薄鍙互鍦ㄨ漿鍙戣繖浜涜姹備互鍓嶆垨浠ュ悗澧炲姞涓浜涢檮鍔犲姛鑳姐傝繖鏍峰氨紜繚浜嗗湪榪愯鏃訛紝涓嶇敤淇敼緇欏畾瀵硅薄鐨勭粨鏋勫氨鍙互鍦ㄥ閮ㄥ鍔犻檮鍔犵殑鍔熻兘銆傚湪闈㈠悜瀵硅薄鐨勮璁′腑錛岄氬父鏄氳繃緇ф壙鏉ュ疄鐜板緇欏畾綾葷殑鍔熻兘鎵╁睍銆?br />

瑁呴グ妯″紡 VS 緇ф壙

 瑁呴グ妯″紡                                                                 緇ф壙
鐢ㄦ潵鎵╁睍鐗瑰畾瀵硅薄鐨勫姛鑳?nbsp;                    鐢ㄦ潵鎵╁睍涓綾誨璞$殑鍔熻兘
涓嶉渶瑕佸瓙綾?nbsp;                                            闇瑕佸瓙綾?br /> 鍔ㄦ佸湴                                                     闈欐佸湴
榪愯鏃跺垎閰嶈亴璐?nbsp;                                    緙栬瘧鏃跺垎媧捐亴璐?br /> 闃叉鐢變簬瀛愮被鑰屽鑷寸殑澶嶆潅鍜屾販涔?nbsp;    瀵艱嚧寰堝瀛愮被浜х敓錛屽湪涓浜涘満鍚堬紝鎶ユ紡綾葷殑灞傛
鏇村鐨勭伒媧繪?nbsp;                                        緙轟箯鐏墊椿鎬?br />

渚嬪瓙錛?/span>

        璁╂垜浠噸鏂拌繑鍥炴垜浠湪宸ュ巶鏂規硶鍜屽崟渚嬫ā寮弆og瀹炵敤宸ュ叿涓婏紝鎴戜滑鐨勬ā寮忎富瑕佺敱Logger 鎺ュ彛鍜屼袱涓畠鐨勫疄鐜扮被??FileLogger鍜孋onsoleLogger??鍒嗗埆鎶婁俊鎭嚭鍔涘埌涓涓枃浠跺拰灞忓箷涓傚彟澶栵紝榪樻湁鍖呮嫭宸ュ巶鏂規硶鐨凩oggerFactory綾匯?br /> LoggerFactory娌℃湁鍑虹幇鍦ㄤ笅鍥句腑錛屼富瑕佹槸鍥犱負瀹冨拰鐜板湪璁ㄨ鐨勪緥瀛愭病鏈夌洿鎺ヨ仈緋匯?br />
璁╂垜浠兂璞′竴浜涘鎴風闇瑕佷互瓚呭嚭Logger Utility鐜板湪鎵鎻愪緵鐨勬柊鐨勬柟寮忓嚭鍔涗俊鎭紝瀹㈡埛绔渶瑕佷笅闈袱縐嶇壒寰侊紱
錛?錛?鎶婂嚭鍔涚殑淇℃伅浼犲敜涓篐TML鏂囨。
錛?錛?瀵瑰嚭鍔涗俊鎭繘琛岄昏緫杞寲鐨勭畝鍗曞姞瀵嗭紝鍦ㄩ潰鍚戝璞$殑璁捐涓紝涓嶆敼鍙樼幇瀛樼殑綾葷殑浠g爜錛屽彲浠ュ簲鐢ㄧ戶鎵挎潵澧炲姞鏂扮殑鍔熻兘銆備緥濡傦紝瀛愮被鍖栫幇鍦ㄧ殑綾婚噸杞藉畠鐨勬柟娉曟潵澧炲姞鎵闇瑕佺殑鏂板姛鑳姐?/span>

搴旂敤緇ф壙錛屾垜浠瀛愮被鍖朏ileLogger鍜孋onsoleLogger綾繪潵澧炲姞鏂扮殑鍔熻兘錛屼細鏈変笅闈㈢殑涓緇勬柊鐨勫瓙綾伙細
瀛愮被 鐖剁被 鍔熻兘
HTMLFileLogger FileLogger 杞寲鍑哄姏淇℃伅涓篐TML鏂囨。錛屽茍瀛樺叆涓涓狶og鏂囦歡
HTMLConsLogger ConsoleLogger 杞寲鍑哄姏淇℃伅涓篐TML鏂囨。錛屽茍鏄劇ず鍦ㄥ睆騫曚笂
EncFileLogger FileLogger 鍔犲瘑鍑哄姏淇℃伅錛屽茍瀛樺叆涓涓狶og鏂囦歡
EncConsLogger ConsoleLogger 鍔犲瘑鍑哄姏淇℃伅錛屽茍鏄劇ず鍦ㄥ睆騫曚笂

浠庣被鍥懼彲浠ョ湅鍒幫紝涓轟簡瀹炵幇鏂扮殑鍔熻兘鍔犲叆浜嗕竴緇勬柊鐨勫瓙綾匯傚鏋滄垜浠繕鏈夊叾浠栫殑Logger綾誨瀷錛堜緥濡傦細DBLogger鍑哄姏淇℃伅鍒版暟鎹簱涓級錛岃繖鏍蜂細鏈夋洿澶氬瓙綾匯傚綋涓涓柊鐨勭壒鎬ч渶瑕佽鍔犲叆錛屽瓙綾葷殑鏁伴噺浼氭湁鎴愬嶆暟鐨勫闀匡紝鍚屾椂鎴戜滑浼氭湁涓涓簽澶х殑綾誨眰嬈°?br />
瑁呴グ妯″紡浣挎垜浠粠榪欑鎯呮櫙涓В鑴卞嚭鏉ワ紝瑁呴グ妯″紡鎺ㄨ崘閫氳繃瀵硅薄鐨勫悎鎴愯屼笉鏄戶鎵挎潵鍖呰涓涓璞℃墿灞曞畠鐨勫姛鑳姐?br /> 搴旂敤瑁呴グ妯″紡錛岃鎴戜滑涓篖ogger Utility瀹氫箟涓涓湁涓嬪垪鐗瑰緛鐨勯粯璁ゆ牴瑁呴グ綾籐oggerDecorator錛?/span>

錛?錛?LoggerDecorator鍖呮嫭涓涓狶ogger瀹炰緥鐨勫紩鐢ㄣ傝繖涓紩鐢ㄦ寚鍚戝畠鍖呭惈鐨凩ogger瀵硅薄銆?br /> 錛?錛?LoggerDecorator瀹炵幇Logger鍊熷彛銆佹彁渚汱og鏂規硶鐨勫熀鏈殑榛樿瀹炵幇錛屼粬鍙槸綆鍗曠殑杞彂璋冪敤緇欏畠鍖呭惈鐨凩ogger 瀵硅薄銆傛瘡涓涓狶oggerDecorator瀛愮被淇濊瘉瀹氫箟log鏂規硶銆?/span>

Listing 19.1: LoggerDecorator Class

  1. public class LoggerDecorator implements Logger {
  2. Logger logger;
  3. public LoggerDecorator(Logger inp_logger) {
  4. logger = inp_logger;
  5. }
  6. public void log(String DataLine) {
  7. /*
  8. Default implementation
  9. to be overriden by subclasses.
  10. */
  11. logger.log(DataLine);
  12. }
  13. }//end of class

姣忎竴涓猯ogger鐨勮楗板畾涔塴og鏂規硶浣垮緢閲嶈鐨勶紝鍥犱負瑁呴グ瀵硅薄蹇呴』鎻愪緵鍜屽畠鍖呰鐨勫璞$浉鍚岀殑鍊熷彛銆傚綋瀹㈡埛绔垱寤轟竴涓楗扮被鐨勫疄渚嬶紝瀹㈡埛绔互涓庤楗扮被浜や簰鏂瑰紡鍜屽鎴風涓庢嫢鏈夌浉鍚屾帴鍙e師瀵硅薄鐨勪氦浜掓柟寮忔槸涓鑷寸殑銆?br /> 璁╂垜浠畾涔塋oggerDecorator鐨勪袱涓瓙綾伙紝HTMLLogger鍜孍ncryptLogger銆?#p# 鍏蜂綋鐨凩ogger 瑁呴グ綾?/strong>

HTMLLogger

HTMLLogger閲嶈澆浜唋og鏂規硶鐨勯粯璁ゅ疄鐜般傚湪log鏂規硶涓紝瑁呴グ綾繪妸鍑哄姏淇℃伅杞寲涓篐TML鏂囨。錛屽茍涓斿彂閫佺粰鍙互鍑哄姏鐨凩ogger瀹炰緥銆?br /> Listing 19.2: HTMLLogger Class

  1. public class HTMLLogger extends LoggerDecorator {
  2. public HTMLLogger(Logger inp_logger) {
  3. super(inp_logger);
  4. }
  5. public void log(String DataLine) {
  6. /*
  7. Added functionality
  8. */
  9. DataLine = makeHTML(DataLine);
  10. /*
  11. Now forward the encrypted text to the FileLogger
  12. for storage
  13. */
  14. logger.log(DataLine);
  15. }
  16. public String makeHTML(String DataLine) {
  17. /*
  18. Make it into an HTML document.
  19. */
  20. DataLine = "" + """ + DataLine +
  21. " + "";
  22. return DataLine;
  23. }
  24. }//end of class
EncryptLogger

涓嶩TMLLogger鐩鎬技錛孍ncryptLogger閲嶈澆浜唋og鏂規硶錛屽湪log鏂規硶涓紝EncryptLogger閫氳繃綆鍗曠殑灝嗗瓧絎︿綅緗悜鍙寵漿縐諱竴浣嶅疄鐜頒簡鍔犲瘑閫昏緫錛屽茍涓斿彂閫佺粰鍙互鍑哄姏鐨凩ogger瀹炰緥銆?br />
Listing 19.3: EncryptLogger Class

  1. public class EncryptLogger extends LoggerDecorator {
  2. public EncryptLogger(Logger inp_logger) {
  3. super(inp_logger);
  4. }
  5. public void log(String DataLine) {
  6. /*
  7. Added functionality
  8. */
  9. DataLine = encrypt(DataLine);
  10. /*
  11. Now forward the encrypted text to the FileLogger
  12. for storage
  13. */
  14. logger.log(DataLine);
  15. }
  16. public String encrypt(String DataLine) {
  17. /*
  18. Apply simple encryption by Transposition…
  19. Shift all characters by one position.
  20. */
  21. DataLine = DataLine.substring(DataLine.length() − 1) +
  22. DataLine.substring(0, DataLine.length() − 1);
  23. return DataLine;
  24. }
  25. }//end of class

涓轟簡浣跨敤鏂拌璁¤楗板璞★紝瀹㈡埛绔渶瑕侊細

錛?錛?浣跨敤LoggerFactory宸ュ巶鏂規硶鍒涘緩涓涓悎閫傜殑Logger瀹炰緥錛團ileLogger/ConsoleLogger錛夈?br /> 錛?錛?鎶婄涓姝ヤ腑鍒涘緩鐨凩ogger瀹炰緥浣滀負鍙傛暟杞掔粰鏂板垱寤虹殑鍚堥傜殑LoggerDecorator瀹炰緥鐨勬瀯閫犲嚱鏁般?br /> 錛?錛?璋冪敤LoggerDecorator瀹炰緥涓婄殑鏂規硶錛?/span>

Listing 19.4: Client DecoratorClient Class

  1. class DecoratorClient {
  2. public static void main(String[] args) {
  3. LoggerFactory factory = new LoggerFactory();
  4. Logger logger = factory.getLogger();
  5. HTMLLogger hLogger = new HTMLLogger(logger);
  6. //the decorator object provides the same interface.
  7. hLogger.log("A Message to Log");
  8. EncryptLogger eLogger = new EncryptLogger(logger);
  9. eLogger.log("A Message to Log");
  10. }
  11. }//End of class

澧炲姞鏂扮殑淇℃伅鍑哄姏綾誨瀷

鍦↙ogging Utility瀹炰緥涓紝搴旂敤瑁呴グ妯″紡瀵規瘮浣跨敤緇ф壙涓嶄細鍥犱負綾誨眰嬈$殑澧為暱鑰屽鑷村ぇ閲忕殑瀛愮被錛屾垜浠繕鏈夊彟澶栫殑Logger綾誨瀷錛欴BLogger??鍑哄姏淇℃伅鍒版暟鎹簱涓備負浜嗗皢淇℃伅杞寲HTML鏍煎紡鎴栧湪鍑哄姏鍒版暟鎹簱浠ュ墠瀵逛俊鎭繘琛屽姞瀵嗭紝瀹㈡埛绔彧闇閬典粠涓婇潰鎻愬埌鐨勬楠わ紝鍥犱負DBLogger鏄竴縐峀ogger綾誨瀷錛屽畠鍙互浣滀負鏋勯犲嚱鏁扮殑鍙傛暟浼犻掔粰HTMLLogger鎴朎ncryptLogger涓換浣曚竴涓被銆?br />

澧炲姞鏂扮殑瑁呴グ

浠庝緥瀛愪腑鍙互鐪嬪埌錛孡oggerDecorator瀹炰緥鍖呭惈浜嗕竴涓狶ogger綾誨瀷浜嗗璞″疄渚嬶紝鍦ㄨ漿鍙戣姹傜粰Logger瀵硅薄瀹炰緥浠ュ墠鎴栦互鍚庯紝澧炲姞鏂扮殑鍔熻兘銆傚洜涓篖oggerDecorator綾誨疄鐜頒簡Logger鎺ュ彛錛孡oggerDecorator瀹炰緥鎴栧畠鐨勪換浣曚竴涓瓙綾婚兘鍙互浣滀負涓涓狶ogger綾誨瀷銆傚洜姝oggerDecortator鍖呭惈瀹冪殑浠諱綍瀛愮被鐨勪竴涓疄渚嬶紝騫朵笖灝嗚姹傝漿鍙戠粰瀹?銆備竴鑸殑涓涓楗板璞″彲浠ュ寘鍚彟涓涓楗板璞★紝騫朵笖鍙互鍚戝畠杞彂璇鋒眰銆傞氳繃榪欑鏂瑰紡錛屾柊鐨勮楗扮被錛屾柊鐨勫姛鑳藉彲浠ラ氳繃鍖呰鐜板瓨鐨勮楗扮被鏉ュ疄鐜般?/span>



liyang 2009-11-01 10:38 鍙戣〃璇勮
]]>
鍗曚緥妯″紡瀹屽叏鍓栨瀽http://www.tkk7.com/thisliy/archive/2009/10/26/299810.htmlliyangliyangMon, 26 Oct 2009 08:58:00 GMThttp://www.tkk7.com/thisliy/archive/2009/10/26/299810.html闃呰鍏ㄦ枃

liyang 2009-10-26 16:58 鍙戣〃璇勮
]]>
java鍔ㄦ佷唬鐞嗗疄渚?/title><link>http://www.tkk7.com/thisliy/archive/2009/10/24/299621.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Sat, 24 Oct 2009 13:44:00 GMT</pubDate><guid>http://www.tkk7.com/thisliy/archive/2009/10/24/299621.html</guid><wfw:comment>http://www.tkk7.com/thisliy/comments/299621.html</wfw:comment><comments>http://www.tkk7.com/thisliy/archive/2009/10/24/299621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/thisliy/comments/commentRss/299621.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/thisliy/services/trackbacks/299621.html</trackback:ping><description><![CDATA[1.鐪熷疄瀵硅薄鎺ュ彛<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span> <span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">interface</span><span style="color: #000000"> IAnimal {<br /> </span><span style="color: #008080">2</span> <span style="color: #000000">    </span><span style="color: #0000ff">void</span><span style="color: #000000"> info();<br /> </span><span style="color: #008080">3</span> <span style="color: #000000">}</span></div> <br /> 2.鐪熷疄綾?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span> <span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> Cat </span><span style="color: #0000ff">implements</span><span style="color: #000000"> IAnimal{<br /> </span><span style="color: #008080">2</span> <span style="color: #000000"><br /> </span><span style="color: #008080">3</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> info() {<br /> </span><span style="color: #008080">4</span> <span style="color: #000000">        System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">This is a cat!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">5</span> <span style="color: #000000">    }<br /> </span><span style="color: #008080">6</span> <span style="color: #000000"><br /> </span><span style="color: #008080">7</span> <span style="color: #000000">}</span></div> <br /> 3.璋冪敤澶勭悊鍣?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080"> 1</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.InvocationHandler;<br /> </span><span style="color: #008080"> 2</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.Method;<br /> </span><span style="color: #008080"> 3</span> <span style="color: #000000"><br /> </span><span style="color: #008080"> 4</span> <span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TraceHandler </span><span style="color: #0000ff">implements</span><span style="color: #000000"> InvocationHandler{<br /> </span><span style="color: #008080"> 5</span> <span style="color: #000000">    <br /> </span><span style="color: #008080"> 6</span> <span style="color: #000000">    </span><span style="color: #0000ff">private</span><span style="color: #000000"> Object target;</span><span style="color: #008000">//</span><span style="color: #008000">浠ョ湡瀹炶鑹蹭綔涓轟唬鐞嗚鑹茬殑灞炴?br /> </span><span style="color: #008080"> 7</span> <span style="color: #008000">    <br /> </span><span style="color: #008080"> 8</span> <span style="color: #008000">    </span><span style="color: #008000">//</span><span style="color: #008000">鏋勯犲櫒</span><span style="color: #008000"><br /> </span><span style="color: #008080"> 9</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> TraceHandler(Object target) {   <br /> </span><span style="color: #008080">10</span> <span style="color: #000000">        </span><span style="color: #0000ff">this</span><span style="color: #000000">.target </span><span style="color: #000000">=</span><span style="color: #000000"> target;   <br /> </span><span style="color: #008080">11</span> <span style="color: #000000">    }   <br /> </span><span style="color: #008080">12</span> <span style="color: #000000"><br /> </span><span style="color: #008080">13</span> <span style="color: #000000">    </span><span style="color: #008000">/*</span><span style="color: #008000"><br /> </span><span style="color: #008080">14</span> <span style="color: #008000">     * 閫氳繃鍙嶅皠鏈哄埗鍔ㄦ佹墽琛岀湡瀹炶鑹茬殑姣忎竴涓柟娉?br /> </span><span style="color: #008080">15</span> <span style="color: #008000">     </span><span style="color: #008000">*/</span><span style="color: #000000"><br /> </span><span style="color: #008080">16</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> Object invoke(Object proxy, Method method, Object[] args)<br /> </span><span style="color: #008080">17</span> <span style="color: #000000">            </span><span style="color: #0000ff">throws</span><span style="color: #000000"> Throwable {<br /> </span><span style="color: #008080">18</span> <span style="color: #000000">        </span><span style="color: #0000ff">try</span><span style="color: #000000"> {<br /> </span><span style="color: #008080">19</span> <span style="color: #000000">            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">琚嫤鎴殑鏂規硶:</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> method.getName()); <br /> </span><span style="color: #008080">20</span> <span style="color: #000000">            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">棰勫鐞?img src="http://www.tkk7.com/Images/dot.gif" alt="" /><img src="http://www.tkk7.com/Images/dot.gif" alt="" />.</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">21</span> <span style="color: #000000">            <br /> </span><span style="color: #008080">22</span> <span style="color: #000000">            </span><span style="color: #0000ff">return</span><span style="color: #000000"> method.invoke(target, args);</span><span style="color: #008000">//</span><span style="color: #008000">璋冪敤鐪熸槸瀵硅薄鐨刴ethod鏂規硶</span><span style="color: #008000"><br /> </span><span style="color: #008080">23</span> <span style="color: #000000">            <br /> </span><span style="color: #008080">24</span> <span style="color: #000000">        } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception e) {<br /> </span><span style="color: #008080">25</span> <span style="color: #000000">            </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /> </span><span style="color: #008080">26</span> <span style="color: #000000">        } </span><span style="color: #0000ff">finally</span><span style="color: #000000"> {<br /> </span><span style="color: #008080">27</span> <span style="color: #000000">             System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">鍠勫悗澶勭悊<img src="http://www.tkk7.com/Images/dot.gif" alt="" /><img src="http://www.tkk7.com/Images/dot.gif" alt="" />.</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">28</span> <span style="color: #000000">        }<br /> </span><span style="color: #008080">29</span> <span style="color: #000000">    }<br /> </span><span style="color: #008080">30</span> <span style="color: #000000">}</span></div> <br /> 4.瀹㈡埛绔?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080"> 1</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.InvocationHandler;<br /> </span><span style="color: #008080"> 2</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.Proxy;<br /> </span><span style="color: #008080"> 3</span> <span style="color: #000000"><br /> </span><span style="color: #008080"> 4</span> <span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> ProxyTest {<br /> </span><span style="color: #008080"> 5</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) {<br /> </span><span style="color: #008080"> 6</span> <span style="color: #000000">        <br /> </span><span style="color: #008080"> 7</span> <span style="color: #000000">        </span><span style="color: #008000">//</span><span style="color: #008000">鐪熷疄瀵硅薄錛堝嵆琚唬鐞嗗璞★級</span><span style="color: #008000"><br /> </span><span style="color: #008080"> 8</span> <span style="color: #000000">        </span><span style="color: #0000ff">final</span><span style="color: #000000"> IAnimal animal </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Cat();<br /> </span><span style="color: #008080"> 9</span> <span style="color: #000000">        <br /> </span><span style="color: #008080">10</span> <span style="color: #000000">        </span><span style="color: #008000">//</span><span style="color: #008000">涓虹湡瀹炲璞″埗瀹氫竴涓皟鐢ㄥ鐞嗗櫒</span><span style="color: #008000"><br /> </span><span style="color: #008080">11</span> <span style="color: #000000">        InvocationHandler handler </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> TraceHandler(animal);<br /> </span><span style="color: #008080">12</span> <span style="color: #000000">        <br /> </span><span style="color: #008080">13</span> <span style="color: #000000">        </span><span style="color: #008000">//</span><span style="color: #008000">鑾峰緱鐪熷疄瀵硅薄(animal)鐨勪竴涓唬鐞嗙被 鈽呪槄鈽呪槄鈽?/span><span style="color: #008000"><br /> </span><span style="color: #008080">14</span> <span style="color: #000000">        Object proxyObj </span><span style="color: #000000">=</span><span style="color: #000000"> Proxy.newProxyInstance(<br /> </span><span style="color: #008080">15</span> <span style="color: #000000">                animal.getClass().getClassLoader(), </span><span style="color: #008000">//</span><span style="color: #008000">鐪熷疄瀵硅薄鐨勭被鍔犺澆鍣?/span><span style="color: #008000"><br /> </span><span style="color: #008080">16</span> <span style="color: #000000">                animal.getClass().getInterfaces(),  </span><span style="color: #008000">//</span><span style="color: #008000">鐪熷疄瀵硅薄瀹炵幇鐨勬墍鏈夋帴鍙?/span><span style="color: #008000"><br /> </span><span style="color: #008080">17</span> <span style="color: #000000">                handler                                </span><span style="color: #008000">//</span><span style="color: #008000">鐪熷疄瀵硅薄鐨勫鐞嗗櫒</span><span style="color: #008000"><br /> </span><span style="color: #008080">18</span> <span style="color: #000000">                );<br /> </span><span style="color: #008080">19</span> <span style="color: #000000">         <br /> </span><span style="color: #008080">20</span> <span style="color: #000000">         </span><span style="color: #0000ff">if</span><span style="color: #000000"> (proxyObj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> IAnimal) {<br /> </span><span style="color: #008080">21</span> <span style="color: #000000">            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">the proxyObj is an animal!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">22</span> <span style="color: #000000">            <br /> </span><span style="color: #008080">23</span> <span style="color: #000000">            IAnimal animalProxy </span><span style="color: #000000">=</span><span style="color: #000000"> (IAnimal)proxyObj;</span><span style="color: #008000">//</span><span style="color: #008000">proxyObj涓巃nimal閮藉疄鐜頒簡IAnimal鎺ュ彛</span><span style="color: #008000"><br /> </span><span style="color: #008080">24</span> <span style="color: #000000">            <br /> </span><span style="color: #008080">25</span> <span style="color: #000000">            animalProxy.info();</span><span style="color: #008000">//</span><span style="color: #008000">鍍忔櫘閫歛nimal瀵硅薄涓鏍蜂嬌鐢?閫氳繃handler鐨刬nvoke鏂規硶鎵ц)</span><span style="color: #008000"><br /> </span><span style="color: #008080">26</span> <span style="color: #000000">        } </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br /> </span><span style="color: #008080">27</span> <span style="color: #000000">            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">the proxyObj isn't an animal!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">28</span> <span style="color: #000000">        }<br /> </span><span style="color: #008080">29</span> <span style="color: #000000">    }<br /> </span><span style="color: #008080">30</span> <span style="color: #000000">}</span></div> <img src ="http://www.tkk7.com/thisliy/aggbug/299621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/thisliy/" target="_blank">liyang</a> 2009-10-24 21:44 <a href="http://www.tkk7.com/thisliy/archive/2009/10/24/299621.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JAVA浠g悊妯″紡http://www.tkk7.com/thisliy/archive/2009/10/24/299585.htmlliyangliyangSat, 24 Oct 2009 12:54:00 GMThttp://www.tkk7.com/thisliy/archive/2009/10/24/299585.html闃呰鍏ㄦ枃

liyang 2009-10-24 20:54 鍙戣〃璇勮
]]>
主站蜘蛛池模板: a级毛片无码免费真人久久| 亚洲综合小说另类图片动图| 一级毛片无遮挡免费全部| 国产免费黄色大片| 国产偷国产偷亚洲高清人| 免费国产a国产片高清网站| 亚洲AV无码专区在线厂| 国产在线观看免费不卡| 精品女同一区二区三区免费播放| 国产真实伦在线视频免费观看 | 久久丫精品国产亚洲av| 99国产精品免费视频观看| 4480yy私人影院亚洲| 五月婷婷综合免费| 亚洲 欧洲 自拍 另类 校园| 大香人蕉免费视频75| 国产尤物在线视精品在亚洲| www.亚洲精品| 中国一级特黄高清免费的大片中国一级黄色片 | 两性色午夜视频免费网| 久久亚洲AV成人出白浆无码国产| 亚洲人成免费电影| 久久精品熟女亚洲av麻豆| 亚洲人成人无码网www国产| 97国免费在线视频| 亚洲黄色三级网站| 成年人性生活免费视频| 一级女人18片毛片免费视频 | 亚洲av无码国产综合专区| 国产免费看插插插视频| 最近国语视频在线观看免费播放| 亚洲AV无码欧洲AV无码网站| 免免费国产AAAAA片| 理论片在线观看免费| 亚洲午夜精品一区二区| 野花高清在线电影观看免费视频| 一区二区免费国产在线观看 | 亚洲hairy多毛pics大全| 亚洲日本va在线视频观看| 99久久这里只精品国产免费| 未满十八私人高清免费影院|