1.代理模式的好处:
通过代理类,为原始类增加额外功能,有利于原始类的维护。
2.名词概念
(1)目标类或者原始类
指的是业务类,核心功能
(2)目标方法 原始方法
指的是目标类或者原始类中的方法
(3)额外功能(附加功能)
比如日志,事务等
3.代理开发的核心要素
代理类 = 目标类(原始类) + 额外功能 + 和目标类实现同样的接口
以上是关于代理模式的一些名词概念,下面是简单的静态代理的代码:
1.新建一个接口类,并定义两个接口方法
public interface UserService1 {
public void login(String name,String password);
public void logout();
}
2.新建一个实现类,并实现1中的接口
public class UserServiceImpl implements UserService1 {
public void login(String name, String password) {
System.out.println("login.method");
}
public void logout() {
System.out.println("logout.method");
}
}
3.新建一个代理类,同样实现1中的接口
public class UserServiceProxy implements UserService1 {
private UserServiceImpl userService = new UserServiceImpl();
public void login(String name, String password) {
System.out.println("代理类的附加功能");
userService.login(name,password);
}
public void logout() {
System.out.println("代理类附加功能=====");
userService.logout();
}
}
代理类中,要调用目标类(即UserServiceImpl),因为目标类会提供具体的业务方法,新加代理类只是为了添加额外功能,把目标类和额外功能整合一起。代理类也要实现接口,并实现接口的方法,在实现方法中首先编写额外功能逻辑,然后再调用目标类的业务方法。
以上只是静态代理的一个小demo,供参考理解
更多内容请关注个人微信公众号:扶瑶直上九重天