zoukankan      html  css  js  c++  java
  • 设计模式9——静态代理模式

    设计模式9——静态代理模式

    代理模式是SpringAOP的底层。

    代理模式分类:

    • 静态代理模式

    • 动态代理模式

    代码实现:

    1.接口

    package com.ghl.staticproxy;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Rent
     * @Date 2020/8/29 20:57
     * @Author gaohengli
     * @Version 1.0
     */
    //静态代理模式
    //租房
    public interface Rent {
    
        public void rent();
    }
    

    2.真实角色

    package com.ghl.staticproxy;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Host
     * @Date 2020/8/29 20:58
     * @Author gaohengli
     * @Version 1.0
     */
    //房东
    public class Host implements Rent{
        @Override
        public void rent() {
            System.out.println("房东要出租房子");
        }
    }
    

    3.代理角色

    package com.ghl.staticproxy;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Proxy
     * @Date 2020/8/29 21:01
     * @Author gaohengli
     * @Version 1.0
     */
    //代理(房租中介)
    public class Proxy implements Rent{
    
        private Host host;
    
        public Proxy(Host host) {
            this.host = host;
        }
    
        @Override
        public void rent() {
            seeHose();
            host.rent();
            heotong();
        }
    
        private void seeHose(){
            System.out.println("中介带你看房子");
        }
    
        private void heotong(){
            System.out.println("中介带你签合同");
        }
    }
    

    4.客户端访问代理角色

    package com.ghl.staticproxy;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Client
     * @Date 2020/8/29 20:59
     * @Author gaohengli
     * @Version 1.0
     */
    //租客找房东租房
    public class Client {
        public static void main(String[] args) {
            //房东要租房子
            Host host = new Host();
            //代理,中介帮房东出租,会有一些附属操作
            Proxy proxy = new Proxy(host);
            //直接找中介租房
            proxy.rent();
        }
    }
    

    代理模式的优缺点:

  • 相关阅读:
    高效程序猿的45个习惯:敏捷开发修炼之道之主题建议翻译1-10
    VS2010旗舰版安装图解
    ibatis 使用 in 查询的几种XML写法
    人脸识别算法初次了解
    键盘过滤驱动
    python property属性
    癞子麻将胡牌算法实现
    恩布900手机客服,安卓版本号Entboost Android 1.0 正式公布
    C语言递归实现二叉树的先序、中序、后序遍历
    CSS:CSS 属性 选择器
  • 原文地址:https://www.cnblogs.com/ghlz/p/13583779.html
Copyright © 2011-2022 走看看