静态代理
接口
public interface UserService {
void queryUsers();
}
实现类
public class UserServiceImp implements UserService {
@Override
public void queryUsers() {
System.out.println("用户查询");
}
}
代理类
public class UserServiceProxy implements UserService {
private UserService userService;
public UserServiceProxy(UserService userService) {
this.userService = userService;
}
@Override
public void queryUsers() {
System.out.println("开始用户查询");
userService.queryUsers();
System.out.println("用户查询完成");
}
}
测试类
public class test {
@Test
public void testName() throws Exception {
UserService userService = new UserServiceImp();
userService = new UserServiceProxy(userService);
userService.queryUsers();
}
}
测试结果:
开始用户查询
用户查询
用户查询完成
总结:
1, 静态代理在使用时,需要定义接口或是父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类。
2, 静态代理存在一个问题:当我们在被代理的类中增加了一个方法,代理类中也要增加相应方法。