代理模式

代理模式

代理模式

角色分析:
抽象角色:一般使用接口或者抽象类去解决
真是角色:被代理的角色
代理角色:代理真实角色,我们一般会用属性去操作
客户:访问代理对象的人

接口

package com.yms.proxy;

/**

  • @Author 杨明书
  • @PackageName: com.yms.proxy
  • @ClassName: Rent
  • @Description:
  • @Date: 2021/12/30 9:57
  • 出租房子的接口,这是房东和中介都需要的
    /
    public interface Rent {
    /
    *
    • 共同需要的接口,出租的接口
      */
      void rentHouse();
      }

房东

package com.yms.proxy;

/**

  • @Author 杨明书

  • @PackageName: com.yms.proxy

  • @ClassName: Host

  • @Description:

  • @Date: 2021/12/30 10:00
    *房东-要出租房子
    */
    public class Host implements Rent{

    @Override
    public void rentHouse() {
    System.out.println("房东要出租房子");
    }
    }

中介,也称为代理

package com.yms.proxy;

/**

  • @Author 杨明书

  • @PackageName: com.yms.proxy

  • @ClassName: Proxy

  • @Description:

  • @Date: 2021/12/30 10:04
    /
    public class Proxy implements Rent{
    /
    *

    • 拿到房源
      */
      private Host host;
      public Proxy(){

    }

    /**

    • 帮助房东出租房子
    • @param host
      */
      public Proxy(Host host) {
      this.host = host;
      }

    @Override
    public void rentHouse() {
    host.rentHouse();
    //看房子
    seeHouse();
    //收中介费
    Fare();
    //签合同
    HeTong();
    }

    /**

    • //看房,中介能做房东不能做的事情,如果你要看很多房子,那房东肯定没有时间陪你一套套的看
    • //这个时候中介就很有用了,你慢慢看,反正他是专门负责带你看房源的
      */
      public void seeHouse(){
      System.out.println("中介带你看房子,不合适就换,直到你满意为止");
      }

    /**

    • 中介还有一个功能 ,就是收中介费用
      /
      public void Fare(){
      System.out.println("你满意后,需要给中介缴纳一定的中介费用");
      }
      /
      *
    • 中介还有一个功能 ,就是收中介费用
      */
      public void HeTong(){
      System.out.println("决定入住后,和中介签订合同");
      }

}

我-客户,需要租房子

package com.yms.proxy;

/**

  • @Author 杨明书

  • @PackageName: com.yms.proxy

  • @ClassName: Client

  • @Description:

  • @Date: 2021/12/30 10:01

  • 我-需要租房子,我只需要调用和房东沟通就行了

  • 问题:现在找不到房东,房子在中介手里,中介手里有大量的房源

  • 我如果需要租房子就必须找中介,中介就成了一个代理
    */
    public class Client {
    public static void main(String[] args) {
    //房东
    Host host = new Host();
    //现在租房子不找房东了,找中介,代理
    Proxy proxy = new Proxy(host);
    proxy.rentHouse();

    }
    }

总结:程序来源于生活

上一篇:http代理连接


下一篇:mongodb与mysql区别(超详细)