代理模式初步理解

本文介绍了代理模式的基本概念,通过租房的例子阐述了静态代理中中间商如何增强方法实现。同时,对比了静态代理和动态代理的区别,指出动态代理的优势在于无需每次都创建新的中间商类,而是通过通用的代理机制来适配业务。文章还简单介绍了静态代理的实现过程,并提及了Java中的InvocationHandler接口。此外,提到了双亲委派机制在类加载过程中的作用。
摘要由CSDN通过智能技术生成

代理模式

代理模式的初步理解 当一个方法有一个中间商进行实现并增强的时候称为代理。

静态代理与动态代理的主要区别?

当静态代理的时候,采用中间的代理类进行实现,比如说你需要租房子,你和房东的实现一个房子的接口,单房东不仅仅是租房子他还可以对你进行一些增强,他在实现这个租房子的接口当中调用牛实现的方法,斌进行一些功能的添加,比如说可以先找人,然后再对你的方法进行实现。而动态代理,他可以不勇房东这一个实现类,你可以自动的适配到一个租房的业务当中去,不需要每次创建一个中间商,直接调用一个固定的万能boss代理。

静态代理的实现?

  • 创建一个具体的需要实现对象
  • 利用Proxy类的newProxyInstance方法进行对象的创建 当中传递的是 类加载器 接口 InvocationHandler
  • 匿名内部类对象 第一个参数 proxy 第二个method 第三个 args
  • method.invoke是一旦使用代理对象调用方法就会执行的
  • return 返回值是方法执行的参数 具体要看接口当中方法的返回值类型

为什么method方法一定会执行?

public static void main(String[] args) {
         final FindHappy f=new JinLian();

        FindHappy ff=(FindHappy)Proxy.newProxyInstance(JinLian.class.getClassLoader(), JinLian.class.getInterfaces(), new InvocationHandler() {
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                method.invoke(f,args);
                return null;
            }
        });
        ff.findHappy();


    }

双亲委派机制


首先由下往上寻找 然后由上往下加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值