Java 动态代理

interface  AppService {
    void play(String kkk);
}

class MyApp implements AppService{

    @Override
    public void play(String kkk) {
        System.out.println("play "+ kkk);
    }
}

interface Car{
    String run(String speed);
}

class BwmCar implements Car{

    @Override
    public String run(String speed) {
        System.out.println("run speed " +speed);
        return speed;
    }
}


class LoggerInterceptor implements InvocationHandler {
    private Object target; //委托类(被代理类)的实例,比如厂家
    public LoggerInterceptor(Object target){
        this.target = target;
    }
    @Override
    public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {
        System.out.println("Entered "+target.getClass().getName()+"-"+method.getName()+",with arguments{"+args[0]+"}");
        Object result = method.invoke(target, args);
        //调用目标对象的方法  (调用厂家的方法(createApp)及参数(Kevin Test))
        System.out.println("Before return:"+result);
        return result;
    }

}

运行结果:

Entered com.winway.modules.wechat.MyApp-play,with arguments{music}
play music
Before return:null

Entered com.winway.modules.wechat.BwmCar-run,with arguments{300}
run speed 300
Before return:300
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值