隨筆 - 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 閱讀(632) 評論(0)  編輯  收藏 所屬分類: 設計模式

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


          網站導航:
           
          主站蜘蛛池模板: 佳木斯市| 化州市| 峨边| 马关县| 外汇| 北宁市| 扬中市| 邹城市| 洞头县| 岳阳县| 河津市| 民丰县| 连云港市| 南康市| 霍城县| 福清市| 怀来县| 嘉黎县| 宿州市| 邛崃市| 华坪县| 任丘市| 临湘市| 馆陶县| 石城县| 衡阳市| 石屏县| 武威市| 白河县| 玛纳斯县| SHOW| 嵊泗县| 固始县| 嘉善县| 汤原县| 宝清县| 兴安县| 玉山县| 车险| 云安县| 故城县|