功能叠加

来源:2-3 了解 JDK 动态代理

惜1218

2019-04-29 13:24

功能叠加怎么做,没做出来

写回答 关注

2回答

  • 慕仙1059526
    2019-10-30 23:52:50

    EMMMMMMMMMMMM,这就是一种

  • CleverHeart
    2019-06-06 15:53:32

    第一种方法

    Car car = new Car();

    Class carClass = car.getClass();

    InvocationHandler timeHandler = new TimeHandler(car);

    Moveable proxy = (Moveable) Proxy.newProxyInstance(carClass.getClassLoader(), 

    carClass.getInterfaces(),timeHandler);

    InvocationHandler logHandler = new LogHandler(proxy);

    Moveable proxy2 =  (Moveable) Proxy.newProxyInstance(proxy.getClass().getClassLoader(),

    proxy.getClass().getInterfaces(), logHandler);

    proxy2.move();

    第二种方法

    Car car = new Car();

    InvocationHandler h = new TimeHandler(car);

    Class<?> cls = car.getClass();

    /**

    * loader  类加载器

    * interfaces  实现接口

    * h InvocationHandler

    */

    Moveable m = (Moveable)Proxy.newProxyInstance(cls.getClassLoader(),

    cls.getInterfaces(), h);

    InvocationHandler h2=new LogHandler(m);

    Class<?> clh=m.getClass();

    Moveable m2=(Moveable)Proxy.newProxyInstance(clh.getClassLoader(), 

    clh.getInterfaces(), h2);

    m2.move();

    其实都差不多。。。

模式的秘密---代理模式

本节课程将带你领略Java编程语言中代理模式的奥妙

54914 学习 · 98 问题

查看课程

相似问题