代理模式,顾名思义,就是通过代理去完成某些功能。比如,你需要购买火车票,不想跑那么远到火车站售票窗口买,可以去附近的火车票代售点买,或者到携程等第三方网站买。这个时候,我们就把火车站叫做目标对象或者委托对象,也可以叫被代理对象,而火车票代售点和携程就叫做代理对象。
一、静态代理
静态代理是最简单的代理模式。需要定义一个接口,然后委托类和代理类分别实现这个接口
//待实现的接口
public interface UserManager {
public void getName(String name);
public void getId(int id);
}
//委托类
public class UserManagerImpl implements UserManager {
@Override
public void getName(String name) {
System.out.println("UserManagerImpl.getName:" name);
}
@Override
public void getId(int id) {
System.out.println("UserManagerImpl.getId:" id);
}
}
//代理类
public class UserManagerProxy implements UserManager {
UserManager userManager;
public UserManagerProxy(UserManager userManager) {
this.userManager = userManager;
}
@Override
public void getName(String name) {
System.out.println(