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

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

代理模式是SpringAOP的底层。

代理模式分类:

  • 静态代理模式

  • 动态代理模式

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

代码实现:

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

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();
    }
}

代理模式的优缺点:
设计模式9——静态代理模式

上一篇:【代理模式】静态代理,动态代理


下一篇:Spring基础入门---【静态/动态代理模式】---超细节!