隨筆 - 37  文章 - 29  trackbacks - 0


          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          最新評論

          閱讀排行榜

          評論排行榜

          12、PROXY?跟MM在網上聊天,一開頭總是“hi,你好”,“你從哪兒來呀?”“你多大了?”“身高多少呀?”這些話,真煩人,寫個程序做為我的Proxy吧,凡是接收到這些話都設置好了自動的回答,接收到其他的話時再通知我回答,怎么樣,酷吧。

          代理模式:代理模式給某一個對象提供一個代理對象,并由代理對象控制對源對象的引用。代理就是一個人或一個機構代表另一個人或者一個機構采取行動。某些情況下,客戶不想或者不能夠直接引用一個對象,代理對象可以在客戶和目標對象直接起到中介的作用??蛻舳朔直娌怀龃碇黝}對象與真實主題對象。代理模式可以并不知道真正的被代理對象,而僅僅持有一個被代理對象的接口,這時候代理對象不能夠創建被代理對象,被代理對象必須有系統的其他角色代為創建并傳入。

          public interface Subject {
              public void methodA();
          }
          public class RealSubject implements Subject {
              public void methodA() {
                 System.out.println("...");
              }
          }
          public class Proxy implements Subject {
              private RealSubject r;
              public void methodA() {
                 if(r == null) {
                    r = RealSubject();
                 }
                 r.methodA();
                 //do something...
              }
          }
          我覺得可以理解為通過RealSubject的兄弟Proxy去調用RealSubject的方法

          和Decorator模式的比較:
          相同點:Both patterns use a proxy that forwards method calls to another object, known as the real subject.
          不同點:with the Proxy pattern, the relationship between a proxy and the real subject is typically set at compile time, whereas  decorators can be recursively constructed at runtime.
          從另一種角度考慮:
          proxy是對類的代理,強調的是對已有功能的代理;而decorator更多的是用于增加裝飾,來豐富類的內涵。


          Adapter和Proxy的區別:
          adapter是適配adaptee和target之間的關系,proxy是realSubject對subject的代理。
          adaptee和target無關系,realSubject和subject有繼承關系。這就是他們的區別。


          這里有篇文章很不錯,鏈接一下:
          http://yichao.blog.edu.cn/user2/yichaozhang/archives/2006/1501606.shtml

          又找到網上另一個見解:
          proxy 和adapter有一定類似,都是屬于一種銜接性質的。
          區別是很明顯的,從大體上說:proxy是一種原來對象的代表,其它需要與這個對象打交道的操作都是和這個代表交涉,就象歌星的經紀人一樣。
          adapter目的則不是要虛構出一個代表者,而是為應付特定使用目的,將原來的類進行一些組合。


          posted on 2008-01-24 13:48 EvanLiu 閱讀(642) 評論(0)  編輯  收藏 所屬分類: 設計模式

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 武安市| 祥云县| 建宁县| 刚察县| 南通市| 长子县| 龙州县| 昌黎县| 江源县| 江川县| 郴州市| 兴义市| 志丹县| 互助| 曲沃县| 卓资县| 诸城市| 德清县| 黎平县| 玛沁县| 长阳| 梓潼县| 威海市| 兖州市| 宝山区| 密山市| 呼图壁县| 石泉县| 诸城市| 广饶县| 安岳县| 开原市| 万山特区| 玉溪市| 永福县| 和田县| 赤峰市| 镇宁| 同德县| 兖州市| 金华市|