静态代理
一、业务场景:租房子
二、角色:中介、房东、租房客户
角色分析
抽象角色---(租房子)一般使用接口或抽象类来实现
真实角色---(房东)被代理的角色
代理角色---(中介)代理真实角色。
客户 ------使用代理角色进行一些操作。
三、代码
接口:租房子
public interface Rent { void rent(); }
房东
public class Host implements Rent { @Override public void rent(){ System.out.println("房屋出租"); } }
中介
public class Proxy implements Rent { private Host host; public Host getHost() { return host; } public void setHost(Host host) { this.host = host; } public Proxy(Host host) { super(); this.host = host; } @Override public void rent(){ seeHouse(); host.rent(); fare(); } private void seeHouse(){ System.out.println("带房客看房"); } private void fare(){ System.out.println("收取中介费"); } }
租房客户
public class Client { public static void main(String[] args) { Host host= new Host(); Proxy p= new Proxy(host); p.rent(); } }
四、使用代理的好处:
1.是的真实角色处理的业务更加纯粹,不再去关注一些公共的事情。
2.公共的业务有代理来完成,实现了业务的分工
3.公共的业务发生扩展时变得更加集中和方便。
五、使用代理的缺点:
1.类数量增加(多了代理类,工作量变大,开发效率变低。)