代理模式-Proxy

每個模式的名稱就表明了該模式的作用,代理模式就是用代理類替代原對象進行一些操作。采用代理類調用原有的方法,可以對原對象產生的結果進行控制。

舉個栗子:

定義一個接口

public interface Sourceable { 
    void function();
}

定義實現類

public class Source implements Sourceable {
    @Override
    public void function() { 
        System.out.println("function"); 
    }
}

定義代理

public class Proxy implements Sourceable {  
  
    private Sourceable source;  

    public Proxy(){  
        this.source = new Source();  
    }  

    public Proxy(Sourceable source){  
        this.source = source;  
    }  

    @Override  
    public void function() {  
        before();  
        source.function();  
        atfer();  
    }  

    private void atfer() {  
        System.out.println("after");  
    }  

    private void before() {  
        System.out.println("before");  
    }  
}

詳細代碼在這里

總結

  • 代理類實現和目標類相同的接口
  • 代理類的功能由調用目標類功能來實現
  • 在調用功能前后等位置(前、后、前后、catch塊)可以添加擴展功能
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容