代理模式之静态代理实现代码

Posted gaopengpy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式之静态代理实现代码相关的知识,希望对你有一定的参考价值。

静态代理是由程序员创建或特定工具自动生成源代码,在对其编译。在程序员运行之前,代理类.class文件就已经被创建了。动态代理是在程序运行时通过反射机制动态创建的。

静态代理模式由三个部分构成:

一个公共的接口、一个代理角色、一个被代理角色

 

接口:

public interface BuyHouse {
    void buyHouse();
}

 

接口实现类:

public class BuyHouseImpl implements BuyHouse {

    public void buyHouse() {
        System.out.println("我要买房");
    } 

}

 

代理类:

public class BuyHouseProxy implements BuyHouse {

    private BuyHouse buyHouse;

    public BuyHouseProxy(final BuyHouse buyHouse) {
        this.buyHouse = buyHouse;
    }

    public void buyHouse() {
        System.out.println("代理类BuyHouseProxy buyHouse方法的调用前执行...");
        buyHouse.buyHouse();
        System.out.println("代理类BuyHouseProxy buyHouse方法的调用后执行...");

    }
}

 

测试类:

public class TestStaticProxy {

    public static void main(String[] args) {
        BuyHouse buyHouse = new BuyHouseImpl();
        BuyHouseProxy buyHouseProxy = new BuyHouseProxy(buyHouse);
        buyHouseProxy.buyHouse();
    }

}

 

运行结果:

技术图片

 

以上是关于代理模式之静态代理实现代码的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式-代理模式之动态代理(附源代码分析)

Spring之静态/动态代理模式

java代码实现设计模式之代理模式

Java之静态代理模式

设计模式之代理模式

#yyds干货盘点# 设计模式之代理模式:静态代理