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

动态代理和聚合代理的区别

public static void main(String[] args) {

Car car = new Car();

InvocationHandler h =new TimeHandler(car);

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

Moveable m = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), h);

InvocationHandler h1 = new LogHandler(m);

Moveable m1 = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), h1);

m1.move();

Car2 car2 = new Car2();

InvocationHandler h2 =new TimeHandler(car2);

Class<?> cls2 = car2.getClass();

Moveable m2 = (Moveable) Proxy.newProxyInstance(cls2.getClassLoader(), cls2.getInterfaces(), h2);

InvocationHandler h3 = new LogHandler(m2);

Moveable m3 = (Moveable) Proxy.newProxyInstance(cls2.getClassLoader(), cls2.getInterfaces(), h3);

m3.move();

}

Car 的部分 实现了 日志的记录,时间的记录, 

Car2 的部分 代表其他车辆也可以使用 同样的代理类,

也就是说,我再定义一个火车也是可以用同样的日志代理和时间代理类的。

而聚合代理就不能完成了对吧。我这样理解对嘛?老师们

正在回答

1 回答

聚合代理也能完成,聚合方式产生的代理比继承方式更好!所以聚合代理一样可以用同样的日志代理和时间代理类的,具体的可以搜索相关视频哦

1 回复 有任何疑惑可以回复我~
#1

奋进吧_Robin 提问者

非常感谢!
2016-09-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

动态代理和聚合代理的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信