设计模式:代理模式
什么是代理模式?
代理模式(英文:Proxy Pattern),为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。
一句话归纳
找人办事,增强职责。
代码示例
现在有一个抽象类定义了要做什么,有一个真正的实现类,我通过新创建一个代理类在该类的方法执行时对其进行了加工处理,而不去改变原有的业务代码(比如:加日志、事务等等)。

适用性
以下场景我建议你考虑使用:
代理模式的使用场景非常多,Spring AOP,这是一个非常典型的动态代理;
业务代码和非业务代码进行分离(比如事务、日志);
想在访问一个类时做一些控制的时候。
局限性
以下场景我建议你谨慎使用:
由于在调用真实类时中间加了一层代理,性能会慢一些。
有些代理模式设计得非常的复杂,需要额外的工作。
静态代理和动态代理
根据代理的创建时期,代理模式分为静态代理和动态代理。
静态:由程序员创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的 .class 文件就已经存在了。
动态:在程序运行时,运用反射机制动态创建而成
写在最后
最后,好兄弟,记得点赞,关注,谢谢。
