工厂模式
将创建对象的new方法交给工厂类完成,可以给程序带来更大的扩展性,方便后期修改
代理模式
代理模式分为动态代理和静态代理。动态代理可用与方法的增强。其中使用Proxy动态代理,代理对象与被代理对象需要有相同的父类或接口。
- Proxy动态代理的使用
Proxy.newProxyInstance(ClassLoader loader, 类<?>[] interfaces, InvocationHandler h)
使用Proxy.newProxyInstance方法创建代理对象。
ClassLoader loader:被代理对象的类加载器。可使用 被代理对象.class.getClassLoader() 获取
类<?>[] interfaces:被代理对象所实现接口的类加载器。可通过 被代理对象.class.getInterface() 获取
InvocationHandler h:需要重写该接口里的invoke方法,作为代理对象的方法(代理对象调用所有的方法都会触发该方法的执行)