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{
private  Host 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.缺点:
  • 类多了---多了代理类,工作量变大。开发效率降低

动态代理设计模式

你可能感兴趣的:(1.代理模式)