静态代理模式
什么是代理模式
生活中的代理是很常见的,比如代购、律师、中介等,他们都有一个共性就是帮助被代理人处理一些前前后后的事情。而被代理人只需要专注做自己要做的那部分事情就可以了。
Java中的代理也是类似的,代理模式可以实现帮助被代理者完成一些前期的准备工作和后期的善后工作,但是核心的业务逻辑仍然是由被代理者完成。
优点
被代理类只需要专注于自己的核心代码即可,剩下的交给代理类就可以了,使得代码更加简洁,分工明确
代理模式的构成
- 公共接口
- 代理角色
- 被代理角色
步骤
创建公共接口(写上方法)-》创建一个被代理类继承公共接口-》创建一个代理类来编写其他方法-》在主函数里将代理函数实例化-》把被代理类实例化传值给实例化的代理类-》运行实例化代理类的接口方法
完整代码
public class Proxy01 {
public static void main(String[] args) {
Wedding wedding = new Wedding(new Me());
wedding.happyMarry();
}
}
interface Marry{
//公共接口
void happyMarry();
}
//被代理类
class Me implements Marry{
@Override
public void happyMarry() {
System.out.println("我要结婚了");
}
}
//代理类
class Wedding implements Marry{
// 传入类对象也可以 private Me me;
private final Marry marry;
public Wedding(Marry marry) {
this.marry = marry;
}
@Override
public void happyMarry() {
before();
marry.happyMarry();
after();
}
private void after() {
System.out.println("收取尾款");
}
private void before() {
System.out.println("收取定金");
}
}