Spring Study-lesson10-静态代理-03-18

角色框架图

代码顺序:

1、接口 :抽象角色 interface

package com.feijian.pojo;

public interface Rent {
    public void rent();
}

2、真实角色:房东 纯粹业务:出租房子

package com.feijian.pojo;

public class Host implements Rent {

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

3、代理角色:中介 不管租房业务,还有其他:看房、签合同、收中介费

package com.feijian.pojo;

public class Proxy implements Rent{
    private Host host;

    public Proxy() {
    }

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

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

    public void seehouse(){
        System.out.println("中介带你看房");
    }

    public void fare(){
        System.out.println("收中介费");
    }

    public void hetong(){
        System.out.println("签租赁合同");
    }
}

4、访问对象:客户

package com.feijian.pojo;

import java.util.Properties;

public class Client {
    public static void main(String[] args) {
        //房东要出租房子
        Host host = new Host();
        //找中介
        Proxy proxy = new Proxy(host);
        //你不要找房东,只要直接找中介租房即可
        proxy.rent();

    }

}

角色分析:

1、抽象角色:一般会用接口或抽象类来解决 (租房 是房东和中介都要做的事)

2、真实的角色:被代理的角色(房东) 中介代理房东去出租房子

3、代理角色:代理房东,他除了出租房子业务之外,还可以做一些其他业务,比如:看房,签合同,收中介费

4、客户(租客):访问代理中介即可,不需要直接和房东打交道了。

 

好处:

1、使真实的角色(房东)只做纯粹的业务,只要出租房子即可

2、公共也交给代理去做,实现了业务的分工

3、公共业务发生变化时,便于集中管理

缺点:

1、一个真实角色就会产生一个代理角色,代码量比较多,开发效率会变低

 

posted @ 2023-03-18 09:49  Rui2022  阅读(9)  评论(0编辑  收藏  举报