PHP代理对象

时间:2012-09-21 18:18:54

标签: php oop object proxy

我是否正确地说代理对象就像是另一个对象/实体的别名? 如何使用代理对象?有人能给出一个基本的例子吗?

非常感谢任何回复。

1 个答案:

答案 0 :(得分:7)

来自GOF - Design Patterns本书:

  

代理对象为另一个对象提供代理或占位符   控制对它的访问。

因此,类A(代理)可以扩展B(RealObject)类或实现其接口。 通常,代理在调用者和真实对象之间执行一些中间步骤,而不会让调用者知道他们正面对代理。

还有许多特定模式来自代理概念:Decorator(添加更多功能),远程代理(隐藏对象之间的通信),保护代理(控制对象之间的通信),Lazy Instantiation(推迟增长对象的加载)只有当他们需要时)和其他人。 所有这些模式都不会为真实对象添加额外的方法,而是为现有方法添加一些功能。

我建议你阅读Giorgio Sironi example in Practical php patterns book

有关真实示例Doctrine uses proxy for lazy loading of related objects