spring--动态代理

动态代理自己理解:

    1.定义了一个公共的接口

    2.一个类实现了这个类,并实现其中的方法

    3.代理类,实现接口,将上面的类对象拿过来,并且在第一个类方法的基础上,拓展了自己的方法

    4.创建第一个类对象,创建代理类对象,将第一个类的对象给代理类

    5.代理类调用自己的方法

 

接口:定义一个公共的方法

package com.kuang.demo1;

/**
 * @author Administrator
 * @description: TODO
 * @date 2021/11/25 17:21
 */

public interface Rent {
    //接口;抽象;租房
    public void rent();
}

真实角色(第一个类)

package com.kuang.demo1;

/**
 * @author Administrator
 * @description: TODO
 * @date 2021/11/25 17:23
 */
//房东
public class Host implements Rent {

    public void rent() {
        System.out.println("出租房屋");
    }
}

代理类

package com.kuang.demo1;
public class Proxy implements Rent {
    private Host host;

    public Proxy(){};
    //将房东对象拿过来使用
    public Proxy(Host host) {
        this.host = host;
    }

    public void rent() {
        host.rent();
        look();
        write();
        money();
    }

    public void look() {
        System.out.println("看房");

    }
    public void write() {
        System.out.println("签合同");

    }
    public void money() {
        System.out.println("收费");

    }

}

使用者

package com.kuang.demo1;
public class Client {
    public static void main(String[] args) {
        Host host = new Host();
        Proxy proxy = new Proxy(host);
        //去找中介租房
        proxy.rent();
    }
}

 

上一篇:【2 基础知识】3 数据结构


下一篇:代理模式