初始設計模式9——代理模式

代理模式Proxy Pattern

爲其他對象提供一種代理以控制對這個對象的訪問。
代理模式簡單的說就是代理類實現被代理類的抽象,並擁有被代理類的引用,通過訪問代理的方法,實際上是訪問被代理類的方法。
//抽象主題類
public interface Subject{
public void request();//定義訪問方法
}
//真實主題類
public class ReadSubject extends Subject{
public void request(){}//真實訪問方法
}
//代理類
public class Proxy extends Subject{
private Subject subject = null;//要代理的類
public Proxy(Proxy subject){this.subject=subject}//要代理類
public void request(){subject.request();}//代理實現訪問
}
職責清晰,高擴展性,智能化
代理模式擴展
普通代理,客戶端只能訪問代理角色,不能訪問真實角色,真實角色在代理類中被創建,無法在客戶端單獨創建
調用者只知代理而不用知道真實角色,屏蔽了真實角色對高層模塊得影響
強制代理,通過真實角色查找代理角色,在真實角色類中創建代理對象,在真實角色類的訪問方法中檢驗代理
虛擬代理,在代理類得每個訪問方法中判斷真實類是否初始化,如沒有,則初始化
動態代理,運行階段才指定代理對象,使用反射機制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章