静态代理模式
什么是代理?
代理受当事人的委托,代表当事人行使某种权利,做某种事情
我们来模拟一个租房的场景

接口:租房的方法
//租房接口 public interface Rent { public void rent(); }
房东租房
//房东 public class Host implements Rent{ public void rent() { System.out.println("房东要出租房子"); } }
你要通过房东租房
public class Client { public static void main(String[] args) { Host host = new Host(); host.rent(); } }
运行结果:房东要出租房子【这样子自然而然是没有问题的】
但是租房的流程是繁琐的,例如看房,签合同等等。
因此我们需要引出一个代理类,帮我们完成部分业务----中介

接口、和房东类不变,新添加一个Proxy中介类
//代理角色 public class Proxy implements Rent{ private Host host; public Proxy() { } public Proxy(Host host) { this.host = host; } public void rent() { seeHouse(); host.rent(); hetong(); fare(); } //看房 public void seeHouse(){ System.out.println("中介带你看房"); } //签合同 public void hetong(){ System.out.println("签租赁合同"); } //收费 public void fare(){ System.out.println("收中介费"); } }
客户端也就是需要租房的人直接访问代理中介即可
public class Client { public static void main(String[] args) { Host host = new Host(); //中介是代理角色,会有附属操作 Proxy proxy = new Proxy(host); proxy.rent(); //你直接接触的是中介,直接找中介租房 } } //中介带你看房 房东要出租房子 签租赁合同 收中介费
好处:
-
-
公共业务交给代理角色,实现业务分工
缺点:
- 一个真实角色就会产生一个代理角色:代码量会翻倍,开发效率变低

浙公网安备 33010602011771号