1.代理模式

静态代理设计模式 1.角色分享: 【1.代理模式】抽象角色:一般使用接口或抽象类来实现。
真实角色:被代理的角色。(房东)
代理角色:代理真实角色---代理真实角色后一般会做一些附属操作。(中介)
客户:使用代理角色来进行一些操作。(我)
1.代理模式
文章图片
类图-StarUML 2.代码实现

//抽象角色:Rent(interface): public interface Rent { public void rent(); }//真实角色:Host(class): public class Host implements Rent{ @Override public void rent() { System.out.println("房东出租"); } } //代理角色:Proxy(class): public class Proxy implements Rent{ privateHost host; public Proxy() { } public Proxy(Host host) { this.host = host; } public void setHost(Host host) { this.host = host; } @Override public void rent() { renen(); host.rent(); renenn(); } public void renen(){ System.out.println("中介带人看房"); } public void renenn(){ System.out.println("中介收费"); } } //客户:Client(class): public class Client { public static void main(String[] args) { Host host = new Host(); Proxy proxy = new Proxy(host); proxy.rent(); } }

3.优点:
  • 可以使得我们的真实角色更加纯粹,不在去关注一些公共的事情
  • 公共的业务由代理来完成---实现业务的分工。
  • 公共业务扩展和修改时更加集中和方便
4.缺点:
  • 类多了---多了代理类,工作量变大。开发效率降低
动态代理设计模式

    推荐阅读