2012-09-21 30 views
2

我說的代理對象就像另一個對象/實體的別名嗎? 如何使用代理對象?誰能給出一個基本的例子?PHP代理對象

非常感謝任何答覆。

回答

7

GOF - Design Patterns書:

代理對象提供另一個目的是給它 控制訪問的代理或佔位符。

所以A類(代理)可以擴展B(RealObject)類或實現它的接口。 通常,代理在呼叫者和真實對象之間執行一些中間步驟,而呼叫者不知道他們正在面對代理。

代理概念產生了許多更具體的模式:Decorator(添加更多功能),Remote Proxy(隱藏對象之間的通信),Protection Proxy(控制對象之間的通信),Lazy Instantiation(延遲加載增長只有在需要時纔有對象)等等。 所有這些模式都不會向實際對象添加額外的方法,但會將一些功能添加到現有方法中。我建議您閱讀Giorgio Sironi example in Practical php patterns book

舉一個真實的例子Doctrine uses proxy for lazy loading of related objects

+0

很好的回覆。感謝這一點,我會給這些鏈接一個很好的閱讀。再次感謝! – UKWD