静态代理模式

静态代理

图形化理解

定义租房接口Rent

package cn.lucky.Proxy;

/**
 * @author lucky
 */
public interface Rent {
    public void rent();
}

定义房东Host接口实现类

package cn.lucky.Proxy;

/**
 * @author lucky
 */
public class Host implements Rent{
    @Override
    public void rent() {
        System.out.println("房东要出租房子");
    }
}

定义中介Proxy接口实现类

package cn.lucky.Proxy;

/**
 * @author lucky
 */
public class Proxy implements Rent{
    private Host host;

    public Proxy(Host host) {
        this.host = host;
    }

    @Override
    public void rent() {
        seeHouse();
        host.rent();
        fare();
    }

    public void seeHouse(){
        System.out.println("中介带你看房子");
    }
    public void fare(){
        System.out.println("收中介费用");
    }
}

定义用户Client类,完成租房

package cn.lucky.Proxy;

/**
 * @author lucky
 */
public class Client {
    public static void main(String[] args) {
        Host host = new Host();
        Proxy proxy = new Proxy(host);
        proxy.rent();
    }
}

测试结果

静态代理模式,组合模式

好处:

  • 可以使真实角色的操作更加纯粹!不用去关注一些公共业务
  • 公共的业务由代理来完成 . 实现了业务的分工
  • 公共业务发生扩展时变得更加集中和方便

缺点 :

  • 类多了 , 多了代理类 , 工作量变大了 . 开发效率降低
posted @ 2021-03-16 19:12  Lucky8991  阅读(60)  评论(0)    收藏  举报