静态代理模式就是在不改变原有的情况,增加代码的功能,比如房东想要出租房子,原来的做法,房东在网上发布租房信息,然后带客户看房在收取租金,什么事情都要让房东一个人去干才行。有个中介机构,就把发布租房信息,带客户看房,签订合同都给中介,房东就负责收取租金。
定义一个房东的接口
public interface UserService {
// 出租房屋
public void rentHome();
}
定义一个房东类实现接口
public class UserServiceImpl implements UserService {
@Override
public void rentHome() {
System.out.println("收钱...");
}
}
定义中介代理类
public class UserServiceProxy implements UserService {
private UserServiceImpl fangDong = new UserServiceImpl();
@Override
public void rentHome() {
System.out.println("打广告...");
System.out.println("带客户看房...");
System.out.println("签合同...");
// 调用核心业务
fangDong.rentHome();
System.out.println("给房客提供后续业务..");
}
}
测试
public class Test01 {
public static void main(String[] args) {
UserService userService = new UserServiceProxy();
userService.rentHome();
}
}