《大話設計模式--代理模式》筆記
阿新 • • 發佈:2018-12-22
1、代理模式(proxy):為其他物件提供一種代理以控制對這個物件的訪問。
2、代理模式結構圖
2、簡單程式碼實現
2.1、subject類,定義了RealSubject和proxy的公共用介面,這樣就在任何使用RealSubject的地方都可以使用Proxy。
public interface Subject {
public abstract void request();
}
2.2、RealSubject類,定義了Proxy代表的真實實體。
public class RealSubject implements Subject { @Override public void request() { System.out.println("真實的請求"); } }
2.3、Proxy類,儲存一個引用使得代理可以訪問實體,並提供一個與subject介面相同的方法,這樣代理就可以用來代替實體。
public class Proxy implements Subject{
private RealSubject sub;
@Override
public void request() {
if(sub==null) {
sub=new RealSubject();
}
sub.request();
}
}
2.4、客戶端程式碼
public class Client { public static void main(String[] args) { Proxy p=new Proxy(); p.request(); } }
3、代理模式應用
1、遠端代理,也就是為一個物件在不同的地址空間提供區域性代表。這樣可以隱藏一個物件存在與不同地址空間的事實。
2、虛擬代理,是根據需要建立開銷很大的物件。通過它來存放例項化需要很長時間的真實物件。
3、安全代理,是來控制真實物件訪問時的許可權。
4、智慧指引,是指呼叫真實物件時,代理處理一些其他事。