1. 程式人生 > >代理模式(Proxy)

代理模式(Proxy)

p s log 場景 private span 方法 陌生 機制 特殊

代理模式(Proxy)


代理模式:簡單明了。簡稱代理商,對代理這個詞想必大家都不陌生,現在微信上,幾乎全是各種代理商,哈哈哈。。。不錯。我們的代理模式,也是如此。用java語言來說。就是,替原對象進行一些操作。比如:律師,打官司人家比咱們懂,因此代理模式也是如此,它可以替我們進行一些操作。

廢話少說。直接代碼走起,

public interface hundsun {  
    public void method();  
}

public class baofoo implements hundsun{  
  
    @Override  
    public void method() {  
        System.out.println(
"the original method!"); } } public class Proxy hundsun { private baofoo source; public Proxy(){ super(); this.source = new baofoo(); } @Override public void method() { before(); source.method(); atfer(); }
private void atfer() { System.out.println("after proxy!"); } private void before() { System.out.println("before proxy!"); } } 測試 public class ProxyTest { public static void main(String[] args) { hundsun source = new Proxy(); source.method(); }

結果輸出

輸出:

before proxy!
the original method!
after proxy!

總結:

代理模式的應用場景:

如果已有的方法在使用的時候需要對原有的方法進行改進,此時有兩種辦法:

1、修改原有的方法來適應。這樣違反了“對擴展開放,對修改關閉”的原則。

2、就是采用一個代理類調用原有的方法,且對產生的結果進行控制。這種方法就是代理模式。

使用代理模式,可以將功能劃分的更加清晰,有助於後期維護!

其實大家看了我寫的這麽多設計模式有沒有發現一點。java的設計模式大多數。離不開java面向對象的三大特征。封裝,繼承。多態。這些模式的設計大多數,就是在這三者之間來回轉換,來回調用。歸其原因,是為什麽呢。哈哈哈。。。沒錯,java有種特殊的機制。向上轉型的機制。這些模式的設計歸其根本就是利用了。這 種機制來完成我們所說的大多數模型。既然什麽技術都沒有用到。然而僅僅是寫法不同,設計出來的也不一樣。因此。在這裏再次告誡大家。一定搞懂需求的情況下。再去設計。因為這直接關乎著你這整個系統的維護性,易用性。健壯性,靈活性。因此,需要深刻領悟六大設計原則。

哈哈哈。。。 錯別字在所難免。領悟含義就行了。

代理模式(Proxy)