1、静态代理模式

2019-12-16  本文已影响0人  lois想当大佬

静态代理模式
定义:通过代理对象访问目标对象,区别于动态代理临时生成代理类,静态代理的类是写好的。
用途:记录日志、增强服务
思想:
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();
    }
}
// 运行结果:
// 准备猪窝
// 恭喜你结婚了
// 闹洞房
上一篇 下一篇

猜你喜欢

热点阅读