了解代理模式这一篇文章就够了( 三 )

客户端测试类
public class Client {public static void main(String[] args) {TargetObject targetObject = new TargetObject();ProxyFactory proxyFactory = new ProxyFactory(targetObject);TargetObject proxyInstance = (TargetObject) proxyFactory.getProxyInstance();// 执行代理对象的方法 , 会触发ProxyFactory类的intercept方法 , 从而实现对目标对象的调用 。proxyInstance.method();}}执行结果
了解代理模式这一篇文章就够了文章插图
总结:
优点:不需要额外维护代理类 , 并且也不需要强制要求被代理的目标对象实现接口 , 使得代码更加的灵活 。
缺点:和JDK的动态代理一样 , 增加了代码的理解难度 。
总结通过“菜鸟”的介绍相信大家对代理模式也有了一定的认识 。 以上介绍的三种方式其使用时的选择时机需要根据实际情况考虑 , 一般当我们需要代理的类少的时候 , 可以考虑使用静态代理 , 但是静态代理的选择一般都比较少 , 因为其维护成本要高 , 并且局限也大 。 当被代理的目标类实现了接口时可以考虑使用JDK代理 , 反之当目标类没有实现接口时就只能选择使用Cglib代理了 。
今天的分享就到这里了 , 如果感觉“菜鸟”写的文章还不错 , 记得点赞加关注呦!你们的支持就是我坚持下去的动力 。 文章哪里写的有问题的也希望大家可以指出 , 我会虚心受教 。
了解代理模式这一篇文章就够了文章插图