美文网首页
1、静态代理模式

1、静态代理模式

作者: lois想当大佬 | 来源:发表于2019-12-16 11:13 被阅读0次

    静态代理模式
    定义:通过代理对象访问目标对象,区别于动态代理临时生成代理类,静态代理的类是写好的。
    用途:记录日志、增强服务
    思想:
    1、上层公共接口
    2、真实对象,实现上层接口
    3、代理对象,实现上层接口

    1、上层公共接口

    package com.hello.static_proxy;
    
    /**
     * 上层接口
     */
    public interface Marry {
    
        void happyMarry();
    
    }
    

    2、真实对象,实现上层接口

    package com.hello.static_proxy;
    
    /**
     * 真实角色
     */
    public class You implements Marry {
    
        @Override
        public void happyMarry() {
            System.out.println("恭喜你结婚了");
        }
    }
    



    3、代理对象,实现上层接口

    package com.hello.static_proxy;
    
    /**
     * 代理对象
     */
    public class WeddingMarry implements Marry {
    
        // 目标对象
        private You you;
    
        public WeddingMarry(You you) {
            this.you = you;
        }
    
        @Override
        public void happyMarry() {
            ready();
            you.happyMarry();
            after();
        }
    
        void ready() {
            System.out.println("准备猪窝");
        }
    
        void after() {
            System.out.println("闹洞房");
        }
    }
    



    4、客户端

    package com.hello.static_proxy;
    
    /**
     * 静态代理模式:类是写好的。【动态代理模式:类是临时生成的】
     * 1、上层接口
     * 2、真实角色,实现上层接口
     * 3、代理角色,实现上层接口
     */
    public class proxy {
    
        public static void main(String[] args) {
            WeddingMarry marry = new WeddingMarry(new You());
            marry.happyMarry();
        }
    }
    // 运行结果:
    // 准备猪窝
    // 恭喜你结婚了
    // 闹洞房
    

    相关文章

      网友评论

          本文标题:1、静态代理模式

          本文链接:https://www.haomeiwen.com/subject/xebrnctx.html