为了账号安全,请及时绑定邮箱和手机立即绑定

静态代理深层次底层问题

为什么cartime跟carlog实现move接口后,就能够做到对car的代理?有什么深层次的原理吗?

正在回答

1 回答

  1. 测试类代码:

  2. public class Main {
    
    public static void main(String[] args) {
    Car car = new Car();
    CarTimeProxy ctp = new CarTimeProxy(car);
    CarLogProxy  clp = new CarLogProxy(ctp);
    clp.move();
    }
    }
  3. cartime和carlog是两个代理类,他们分别为car代理了记录时间和日志的功能

  4. cartime和carlog这两个代理类都实现了Moveable接口,同时要重写move方法

  5. car汽车类也实现了Moveable接口的move方法,car类中的move方法只实现了汽车行驶的功能,并不实现记录时间和日志的功能。

  6. 重点来了,我们在main方法中调用move方法的时候其实是嵌套调用了,一层层的来调用的,main方法中clp先调用move方法时,先是执行自己实现的move方法里的操作,然后执行ctp的move方法里的操作,最后执行car对象本身的行驶操作。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

静态代理深层次底层问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号