天天看點

【設計模式】代理模式

今天早上,米老師決定給同學開會。于是通過班長通知給全班的所有學生。

這就是一個代理模式。

代理模式(proxy):為其他對象提供一種代理以控制對這個對象的通路。

【設計模式】代理模式

一個是真正的你要通路的對象(目标類),一個是代理對象,真正對象與代理

對象實作同一個接口,先通路代理類再通路真正要通路的對象。

生活中,我們常聽到xxx是某某品牌的校園代理。其實和我們的設計模式是一樣的。本來是某品牌直接到學校開展業務活動。現在通過代理來實作其業務。兩者的應該具有相同的方法,即能夠實作相同的接口。

再有,大化設計模式中提到的卓賈易通過戴勵幫忙給嬌嬌送巧克力。也是一個代理模式。筆者認為以下代碼便是代理模式的“眼”,了解了它,便不難了解代理模式在代碼中是如何實作的。

也就是提供一個代理接口,然後追求者去實作送禮物接口。再用代理類去調用追求者的方法,來替追求者送禮物等。

真正在程式中的應用方面:(個人了解不深刻,待繼續學習)

①遠端代理。也就是一個對象在不同的位址空間提供局部代表。這樣可以隐藏一個對象存在于一個不同位址空間的事實。

②虛拟代理。根據需要建立開銷很大的對象。通過它來存放執行個體化需要很長時間的真是對象。

③安全代理。根據需要建立開銷很大的對象。

④智能指引。當調用真實的對象時,代理處理另外一些事。

繼續閱讀