欢迎光临散文网 会员登陆 & 注册

设计模式:代理模式

2021-04-18 18:16 作者:做架构师不做框架师  | 我要投稿

什么是代理模式?

代理模式(英文:Proxy Pattern),为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。

一句话归纳

找人办事,增强职责。

代码示例

现在有一个抽象类定义了要做什么,有一个真正的实现类,我通过新创建一个代理类在该类的方法执行时对其进行了加工处理,而不去改变原有的业务代码(比如:加日志、事务等等)。

适用性

以下场景我建议你考虑使用:

  • 代理模式的使用场景非常多,Spring AOP,这是一个非常典型的动态代理;

  • 业务代码和非业务代码进行分离(比如事务、日志);

  • 想在访问一个类时做一些控制的时候。

局限性

以下场景我建议你谨慎使用:

  • 由于在调用真实类时中间加了一层代理,性能会慢一些。

  • 有些代理模式设计得非常的复杂,需要额外的工作。

静态代理和动态代理

根据代理的创建时期,代理模式分为静态代理和动态代理。

  • 静态:由程序员创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的 .class 文件就已经存在了。

  • 动态:在程序运行时,运用反射机制动态创建而成

写在最后

最后,好兄弟,记得点赞,关注,谢谢。


设计模式:代理模式的评论 (共 条)

分享到微博请遵守国家法律