-
代理模式的分类: 远程代理模式:为不同地理的对象提供局域网代表对象(例子:通过远程代理可以监控各个店铺,使之可以直观的了解店里的情况) 虚拟代理:根据需要将资源消耗很大的对象进行延迟,真正需要的时候进行创建 保护代理:控制用户的访问权限 智能引用代理:提供对目标对象提供额外的服务(火车票代售处)查看全部
-
proxy是代理对象,不是被代理对象查看全部
-
使用动态代理Proxy.newProxyInstance()查看全部
-
JDK动态代理:1、只能代理实现了接口的类 2、没有实现接口的类不能实JDK的动态代理。 CGLIB:1、针对类来实现代理。2、对指定目标类产生一个子类,通过方法拦截技术拦截所有父类方法的调用。查看全部
-
动态代理实现步骤: 1、创建一个实现接口InvocationHandler的类,它必须实现invoke方法。 2、创建被代理的类以及接口。 3、调用Proxy的静态方法,创建一个代理类。 newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h) 4、通过代理调用方法。查看全部
-
所谓动态代理是这样一种class:它是在运行时生成的class;该class需要实现一组interface;使用动态代理类时,必须实现InvocationHandler接口。查看全部
-
静态代理:代理和被代理对象在代理之前是确定的。他们都实现相同的借口或者继承相同的抽象类。查看全部
-
动态代理思路 1.声明一段源码(动态产生代理) 2.编译源码(JDK Compiler API),产生新的类(代理类) 3.将这个类load到内存当中,产生一个新的对象(代理对象) 4.return 代理对象查看全部
-
@设计模式——代理模式——静态代理的实现 1、聚合代理优于继承代理。因为实现功能叠加的情况下,聚合代理通过相互代理可以实现功能重用,而继承代理必须写多个类来实现多功能叠加。 2、静态代理只能代理一种类型的被代理类,换个类型的就不行了,这需要动态代理 静态代理的两种实现方式对比(继承方式和聚合方式) 案例--代理类功能的叠加 1. 继承的方式:如果使用继承的方式来实现我们代理功能的叠加,我们的代理类会无限的膨胀下去。 2. 聚合的方式: 由于代理类和被代理类都实现了相同的接口,那么代理类的构造参数就可以传入该相同的接口,这样在后面功能叠加的时候就可以传入其他功能的代理类,因为他们都实现了相同的父接口。从而达到功能叠加的作用。 eg: 先记录日志再记录时间 Car car = new Car(); CarTimeProxy ctp = new CarTimeProxy(car); CarLogProxy clp = new CarLogProxy(ctp); clp.move(); 先记录时间再记录日志 Car car = new Car(); CarLogProxy clp = new CarLogProxy(car); CarTimeProxy ctp = new CarTimeProxy(clp); ctp.move(); 聚合的方式比继承的方式灵活很多,通过聚合的方式,代理之间也是可以相互传递的,相互组合查看全部
-
静态代理的实现查看全部
-
聚合的方法:在一个对象中调用另一个对象,通过将另一个对象以传参的方式传进来查看全部
-
打印输出快捷方式 sysout+alt+/查看全部
-
shift+ctrl+o引入查看全部
-
静态代理的概念查看全部
-
远程代理查看全部
举报
0/150
提交
取消