1. 程式人生 > >《大話設計模式--代理模式》筆記

《大話設計模式--代理模式》筆記

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、智慧指引,是指呼叫真實物件時,代理處理一些其他事。