设计模式篇之 代理模式 Proxy
目的
代理是一种结构型设计模式,它允许你为另一个对象提供替代品或占位符。代理控制对原始对象的访问,允许你在请求到达原始对象之前或之后执行某些操作。
问题
你可能希望控制对对象的访问,原因有很多。以一个例子来说:你有一个庞大的对象,它会占用大量的系统资源。你偶尔需要使用它,但并非一直需要。

你可以实现延迟初始化:仅在真正需要时才创建该对象。所有使用该对象的客户端都需要执行一些延迟初始化代码。不幸的是,这可能会导致大量代码重复。
在一个理想的世界里,我们希望将这些代码直接放入对象的类中,但并不总是可能。例如,该类可能是某个封闭的第三方库的一部分。
解决方案
代理模式建议你创建一个新的代理类,其接口与原始服务对象相同。然后,你更新应用程序,使其将代理对象传递给所有原始对象的客户端。当从客户端接收到请求时,代理会创建一个真实的服务对象,并将所有工作委托给它。