最近一直感觉到没有学到什么东西,惶惶恐恐的感觉,夜夜难以入眠。不知道该学什么,从哪里出发;因此我决定每天写一篇学习笔记,记录每天学到了什么,无论是什么东西都将其记下来!希望能够坚持。
今天首先学的关于Java的设计模式之代理模式。代理模式分为两种:静态代理和动态代理。
1、静态代理
对于静态代理,由我个人学习理解认为分为两种:继承和实现同一接口。
①继承:指的是对被代理对象的继承,通过对其相应的方法的覆盖。然后可以添加相应的业务逻辑。
②实现同一接口:指的是通过实现同一接口,聚合被代理对象,同样通过对其相应的方法进行覆盖,再添加相应的业务逻辑。
2、动态代理
对于动态代理可以使用JDK1.6以上具有的compiler或者使用cglib产生二进制文件实现动态代理。
而关于使用Java1.6特性的compiler可以通过创建方法newProxyInstance,传入class和InvocationHander两个参数。首先利用Methods数组对class方法的遍历,利用字符串动态的产生相应的方法代码,并写入相应.java文件中。然后通过JavaCompiler对其进行编译产生代理对象。