隨筆 - 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)  編輯  收藏 所屬分類: 設計模式

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


          網站導航:
           
          主站蜘蛛池模板: 新源县| 凤庆县| 全州县| 林周县| 大港区| 延川县| 莒南县| 历史| 鄂托克旗| 枣庄市| 大埔区| 新沂市| 九台市| 连江县| 青岛市| 德庆县| 延津县| 呼和浩特市| 江川县| 浠水县| 安庆市| 太仆寺旗| 西和县| 南城县| 长宁区| 玉树县| 潍坊市| 安岳县| 庐江县| 威信县| 体育| 乌拉特前旗| 长子县| 许昌县| 犍为县| 丽水市| 新余市| 通辽市| 宣威市| 红安县| 田林县|