1.概念
a.通过代理类,为原始类增加额外的功能
b.好处:利于原始类的维护
2.代理类开发的核心要素
代理类=原始类+额外功能+代理类和原始类实现相同的接口
3.代理类的方式
静态代理、动态代理。
4.静态代理编码
定义接口
public interface UserService {
public void register(User user);
public boolean login(String name, String password);
}
定义实现类
public class UserServiceImpl implements UserService {
@Override
public void register(User user) {
System.out.println("UserServiceImpl.register 业务运算 + DAO ");
}
@Override
public boolean login(String name, String password) {
System.out.println("UserServiceImpl.login");
return true;
}
}
定义代理类
public class UserServiceProxy implements UserService {
private UserServiceImpl userService = new UserServiceImpl();
@Override
public void register(User user) {
System.out.println("----log-----");
userService.register(user);
}
@Override
public boolean login(String name, String password) {
System.out.println("----log-----");
return userService.login(name,password);
}
}
结果
public void test1() {
UserService userService = new UserServiceProxy();
userService.login("suns", "123456");
userService.register(new User());
}
----log-----
UserServiceImpl.login
----log-----
UserServiceImpl.register 业务运算 + DAO
Process finished with exit code 0
静态代理的缺点:静态文件数量多,不利于维护