PHP代理对象

UKW*_*KWD 2 php oop proxy object

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

任何回复都非常感谢.

Mar*_*nte 7

来自GOF - 设计模式书:

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

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

代理概念还有许多更具体的模式:Decorator(添加更多功能),远程代理(隐藏对象之间的通信),保护代理(控制对象之间的通信),Lazy Instantiation(仅在它们出现时推迟加载增长对象)是必要的)和其他人.所有这些模式都不会向真实对象添加额外的方法,而是向现有方法添加一些功能.

我建议你阅读Giorgio Sironi在Practical php模式书中的例子.

对于一个真实的例子, Doctrine使用代理来延迟加载相关对象.