php 不常用设计模式-代理模式
人都有幸福的权利,但少数人有幸福的能力。
在AOP设计思想中,运用的就是代理模式的应用
定义
代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。
使用场景
1.调用端不想或不能直接调用的对象。
2.服务端不想让调用端看到核心实现。
优点
1.服务端与调用端分离,防止服务端代码与调用端直接关联,降低耦合。
2.保护目标对象。
缺点
1.增加类的数量,增加代码复杂度。
2.额外且非必要的类,会造成资源损耗。
与类似接口的区别:
适配器模式 —— 适配器模式为它所适配的对象提供了一个不同的接口,而代理提供了与它的实体相同的接口。
装饰器模式 —— 两者目的不同:装饰器为对象添加一个或多个功能,而代理则控制对对象的访问。