設計模式——代理模式
阿新 • • 發佈:2018-03-31
狀態模式 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(代理模式)
設計模式——代理模式