Spring-静态代理
作者:互联网
举例:客户租房
- 租房这件事,是一个抽象的动作,用代码表示为接口
public interface Rent {
public void rent();
}
- 房东,想要出租房子,就要完成租房这个动作(可以理解为发布租房信息),也就是实现租房这个接口
public class Host implements Rent {
@Override
public void rent() {
System.out.println("房东要出租房子");
}
}
- 代理,没有房,但是也想要出租房子,所以要完成出租房屋的动作并且拿到房东,再在单纯租房的这件事上增加一些操作牟取差价,比如物业管理费
public class Proxy implements Rent{
Host host;
public Proxy(Host host) {
this.host = host;
}
public Proxy() {
}
@Override
public void rent() {
//代理看房的附加操作
seehouse();
//真正租房这件事
host.rent();
//代理看房的附加操作
fee();
}
void seehouse(){
System.out.println("看房子");
}
void fee(){
System.out.println("付租金");
}
}
- 最后,市场上,客户想要租到房子的顺序就是,先有房东想要出租房子,再有一个代理来代理房东,代理出租房子
public class Client {
public static void main(String[] args) {
//拿到房东
Host host = new Host();
//new一个代理去代理房东:把房东作为参数传给新来的代理
Proxy proxy = new Proxy(host);
//代理去出租房子
proxy.rent();
}
- 结果
标签:租房,房东,静态,Spring,void,代理,host,public 来源: https://blog.csdn.net/qq_40429067/article/details/112733420