第三章 JDK代理设计模式(自己理解)

本文详细介绍了如何使用Java的动态代理(Proxy)机制,创建一个增强SomeService接口的实例。首先,定义接口和包含doSome()和doOuther()的方法。接着,实现InvocationHandler以添加额外功能,然后创建代理对象,并在测试类中演示代理的使用。

准备一个接口,里面有两个方法doSome(),doOuther()

写一个类,实现上面这个接口

不改变这个类里面的方法,实现增强功能(也就是增加业务或者日志),在写一个类,用另外一个类,去增强代码。

 写完增强代码,需要写一类把增强类整合到一起 ,这个类实现了InvocationHandler,这里面就能帮我们实现代理的功能

写完以上的代码,下面这个是测试以上写的内容是否能够实现代理的功能

public class MyTest{
    public static void main(String[] args){
        
        //使用jdk的proxy创建代理对象
        //创建目标类
        SomeService target = new SomeServiceImpl();

        //创建InvocationHandler对象
        InvocationHandler handler = new MyIncationHandler(target);

        //使用Proxy创建代理
        SomeService pro = (SomeService) Proxy.newProxyInstance(
                target.getClass().getClassLoader(),
                target.getClass().getInterfaces(),handler);

        //通过代理执行方法,会调用handler中的invoke()
        pro.dosome();
        System.out.println("------------------");
        pro.doOuther();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值