(1):代理模式
代理模式:就是在原有功能之上提供额外的服务。
特点:不改变目标对象;拥有额外功能。
分类:静态代理、动态代理
动态代理:
1.实现invocationHandler接口
2.在实现接口的具体类当中常见代理对象:Proxy.newProxyInstance()
3.操作代理对象的时候会执行invoke()方法
public class LoginHandler implements InvocationHandler{
private Object delegate;//代理对象,就是userserviceIMP对象
public Object bind(Object delegate) {
this.delegate=delegate;
//创建代理对象:通过Proxy的静态方法newProxyInstance()创建代理对象
return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
delegate.getClass().getInterfaces(), //代理对象的接口就是代理接口userservice
this);
}
@Override
//对代理对象进行操作的时候会执行invoke方法
public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable {
// TODO Auto-generated method stub
Object result=null;
result=arg1.invoke(delegate, arg2);
return result;
}
}
public class Test {
public static void main(String[] args) {
LoggerHandler lh = new LoggerHandler();
UserService us = (UserService) lh.bind(new UserServiceImpl());//创建代理对象
us.login("adi", "123");
}
}
(2):aop简介
AOP:面向切面编程
是一种思路,不是一种语言。典型的例子包括日志、验证、事务管理等。