代理模式是對象的結構模式,爲其餘對象提供一種對象以控制對這個對象的訪問。設計模式
代理模式的結構圖以下:(源自大話設計模式)安全
Subject:定義了RealSubject和Proxy的公共接口,這樣在任何使用RealSubject的地方均可以使用Proxy設計
代理模式就是在代理類中持有RealSubject的對象句柄,這樣調用接口時,都執行RealSubject的對應方法,以達到封裝內部控制對象的目的並起到代理的做用。代理
第一種是遠程代理,也就是爲一個對象在不一樣的地址空間(跨機器)提供局部表明,這樣能夠隱藏一個對象存在於不一樣地址空間的事實。指針
第二種是虛擬代理,是根據須要建立開銷更大的對象,經過它來存放實例化須要很長時間的真實對象。 好比打開網頁是的圖片一步加載,加載以前網頁中預留的圖片的白框就是圖片的代理。對象
第三種是安全代理,用來控制真實對象訪問時的權限,通常用於對象應該有不一樣的訪問權限的時候。blog
第四種是智能指針,他是真實對象的一種代理。接口