设计模式——代理模式

设计模式——代理模式

静态代理

  1. 角色:
    1. 抽象角色
    2. 真实角色
    3. 代理角色
    4. 访问代理对象的角色
  2. 优点:
    1. 使真实角色的操作更纯粹
    2. 公共的业务交给代理类进行处理
    3. 公共业务扩展时,方便管理
  3. 缺点:
    1. 一个真实角色需要一个代理角色
  4. 代码
    1. 编写抽象角色
    /**
     * 抽象角色
     */
    public interface Rent {
        void rent();
    }
    
    1. 编写真实角色
    /**
     * 真实角色
     */
    public class Host implements Rent {
        public void rent() {
            System.out.println("出租房子");
        }
    }
    
    1. 编写代理角色
    /**
     * 代理角色
     * 中介代理
     * 除了可以完成房东的出租房屋以外 还可以签订合同等等
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Proxy implements Rent{
        private Host host;
    
        public void rent() {
            host.rent();
        }
    
        public void contract() {
            System.out.println("签订合同");
        }
    }
    
    1. 编写访问代理对象的角色
    /**
     * 访问代理对象
     * 静态代理
     * 优点
     * 1. 使真实角色的操作更纯粹
     * 2. 公共的业务交给代理类进行处理
     * 3. 公共业务扩展时,方便管理
     *
     * 缺点
     * 1. 一个真实角色需要一个代理角色
     */
    public class Client {
        public static void main(String[] args) {
            Host host = new Host();
            Proxy proxy = new Proxy(host);
            proxy.rent();
            proxy.contract();
        }
    }
    
上一篇:『设计模式』结构型 ——代理模式


下一篇:Spring-AOP与代理模式的比较