列举房东和租客及中间插入一个中介的问题来展示代理模式的实现
1.首先创建一个接口 来表现要租房这个行为
package com.yyf.demo01;
public interface Rcent {
public void rcent();
}
2.创建房东类,来实现这个接口,因为房东租房肯定有这个行为
package com.yyf.demo01;
public class Host implements Rcent {
@Override
public void rcent() {
System.out.println ("房东出租房屋");
}
}
3.房东并不想每天劳累的去找人租房,于是找了一个中介来替自己完成租房的任务,于是中介也有了租房的这个功能 ,在代理类里添加房东类对象来调用租房这个行为,中介不仅要租房,在这之间还要签合同,收中介费等等一系列行为,这都是租房的同时完成的。
package com.yyf.demo01;
public class Proxy implements Rcent {
private Host host;
public Proxy() {
}
public Proxy(Host host) {
this.host = host;
}
//替房东出租房屋
@Override
public void rcent() {
contract (); //签合同
host.rcent ();
seeHouse ();
commission (); //收中介费
}
//签合同
public void contract(){
System.out.println ("签合同");
}
//带客户看房
public void seeHouse(){
System.out.println ("带客户看房");
}
//收中介费
public void commission(){
System.out.println ("收中介费");
}
}
4.客户类 来创建房东对象,来给代理的有参构造引入,最后代理完成这个一系列行为
package com.yyf.demo01;
public class Client {
public static void main(String[] args) {
Host host = new Host ();
Proxy proxy = new Proxy (host);
proxy.rcent ();
}
}