设计模式-结构型设计模式-4.代理模式(php)

设计模式类型

结构型设计模式

设计模式名称

代理模式

模式定义

代理模式(Proxy Pattern)属于结构型模式,代理模式为其他对象提供一种代理以控制对这个对象的访问。可以使用代理模式在原接口之前或之后增加一些额外的功能。

UML

1、抽象角色:
通过接口或抽象类声明真实角色实现的业务方法

2、真实角色:
抽象接口或抽象类的具体实现

3、代理角色:
同真实角色一样,实现了抽象的接口或抽象类定义的方法,并且持有真实角色对象的应用,调用真实角色相同的接口方法,在接口的前面,或后面实现一些附加的功能

代理分为
1、静态代理
2、动态代理
https://www.cnblogs.com/lfdingye/p/7717063.html

设计模式-结构型设计模式-4.代理模式(php)

应用场景

1、当我们想对外部隐藏某个对象时,可以为其提供代理类
2、当一个对象的操作需要不同的安全等级或权限控制时,我们可以为其提供代理类,在代理类中实现权限及安全控制。
3、当需要对一个对象原有功能进行简单的功能扩展时,可以使用代理模式

优缺点

优点

1、职责清晰
2、扩展性高

缺点

1、业务复杂的场景增加代理模式将会增加系统的复杂性,也可能将请求的速度拖慢

git地址

https://github.com/wonlon/Design-patterns