【发布时间】:2012-09-14 04:48:35
【问题描述】:
我是否正确地说代理对象就像另一个对象/实体的别名? 如何使用代理对象?谁能举个基本的例子?
非常感谢任何回复。
【问题讨论】:
我是否正确地说代理对象就像另一个对象/实体的别名? 如何使用代理对象?谁能举个基本的例子?
非常感谢任何回复。
【问题讨论】:
代理对象为另一个对象提供代理或占位符 控制对它的访问。
所以类 A(proxy) 可以扩展 B(RealObject) 类或实现其接口。 通常代理会在调用者和真实对象之间执行一些中间步骤,而调用者并不知道他们面对的是代理。
代理概念产生了许多更具体的模式:装饰器(添加更多功能)、远程代理(隐藏对象之间的通信)、保护代理(控制对象之间的通信)、延迟实例化(延迟加载增长对象仅在需要时)和其他人。 所有这些模式都没有为真实对象添加额外的方法,而是为现有方法添加了一些功能。
我建议你阅读Giorgio Sironi example in Practical php patterns book。
举个真实的例子Doctrine uses proxy for lazy loading of related objects。
【讨论】: