1. 程式人生 > >設計模式——代理模式

設計模式——代理模式

狀態模式 har 變化 blog www. ref implement med request

  • 1.代理模式定義

    為其他對象提供一種代理一控制這個對象的訪問。
    代理模式是一種基本的設計技巧。許多模式,如策略模式,狀態模式,訪問者模式本質上是特殊場合采用的代理模式。代理模式可以提供非常好的訪問控制。

  • 代理模式通用類圖

    技術分享圖片

  • 角色定義

    (1)Subject抽象主題
    抽象主題類是抽象類或接口,普通業務類型定義。
    (2)RealSubject具體主題
    被代理類,是業務邏輯具體執行者。
    (3)Proxy代理主題
    代理類,它負責對真實角色的應用,吧所有抽象主題類定義的方法限制委托給真實主題角色實現(RealSubject),並且在真實主題角色處理完畢前後做預處理和善後處理。

  • 代碼實現

    public interface Subject {
    
    void request();
    }
    public class RealSubject implements Subject {
    public void request() {
        //業務邏輯
    }
}
    public class Proxy implements Subject {

    //要代理的實現類
    private Subject subject = null;

    public Proxy() {
        this.subject = new Proxy();
    }

    //通過構造函數傳遞代理者
    public Proxy(Object... objects) {

    }

    //實現接口定義的方法
    public void request() {
        this.before();
        this.subject.request();
        this.after();
    }

    //預處理
    public void before() {

    }

    //後處理
    public void after() {

    }
}
  • 代理模式優點

    (1)職責清晰
    真實角色就是實現世界業務邏輯,不關心非本職業務。
    (2)高拓展性
    具體主題角色可以隨時變化,只要他實現了接口,代理類都可以不做任何修改地使用。

Proxy(代理模式)

設計模式——代理模式