5月17日代理_注解_反射

1.用反射获得构造方法: 通过构造方法形参类型的 .class 来确定是哪个构造方法
2.用反射获得字段: 通过字段的名字 来确定获得哪个字段
3.用反射获得一般方法: 通过  方法名 与 形参类型的.class 共同确定获得指定方法;


4.invocation相当于一个监听器,对目标对象方法调用的监听,怎么确定监听的是哪个方法?
4.1 其实在监听时利用了反射,监听
`
静态代理就是代理获得被代理对象,然后在show方法里边调用 被代理对象的show方法;

动态代理是利用Proxy 的方法传入 被代理对象, 然后创建代理对象, 用代理对象调用show方法时,
是invocation 的invoke方法第一时间监听到,然后被调用,传过来的只有:代理/调用的方法/传入的参数
但是并没有传过来目标对象,怎么对目标对象进行处理?


5.代理模式与装饰者的区别


6.注解替换xml?如果用注解跟直接写死有啥区别?
 注解对xml的替代 :是对框架使用者而言,对框架创建者,似乎不是的;
 7.反编译之后为啥不是源码?
 8.注解就是借用了interface的一个架子;  借用了掉方法的形式,来调属性,然后在注解上赋值,
 作为方法调用的返回值;
 
这两个设计模式看起来很像。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。
对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。此外,不论我们使用哪一个模式,
都可以很容易地在真实对象的方法前面或者后面加上自定义的方法。


然而,实际上,在装饰器模式和代理模式之间还是有很多差别的。
装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。
换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。
因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,
当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。


我们可以用另外一句话来总结这些差别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,
而装饰者能够在运行时递归地被构造。 


 

猜你喜欢

转载自blog.csdn.net/weixin_36898943/article/details/80740674
今日推荐