java静态代理代码举例

java静态代理代码举例

/*
 *静态代理举例
 *
 *特点:代理类和被代理类在编译期间就确定下来了
 *
 *@author 刘鑫
 *@create by 2021/4/15 22:29
 */

 interface ClothFactory{
    void produceCloth();
}

//代理类
class ProxyClothFactory implements ClothFactory{

    //代理类持有一个被代理类类的对象引用
     private ClothFactory factory;//用被代理类进行实例化

    public ProxyClothFactory(ClothFactory factory){
        this.factory=factory;
    }
    @Override
    public void produceCloth() {
        System.out.println("代理工厂做一些准备工作");

        //将请求分派给被代理类处理
        factory.produceCloth();

        System.out.println("代理工厂做一些后续的收尾工作");
    }
}


//被代理类
class NikeClothFactory implements ClothFactory{

    @Override
    public void produceCloth() {
        System.out.println("Nike工厂生产一批运动服");
    }
}
public class StaticProxyTest {

    public static void main(String[] args) {
        //创建被代理类
        NikeClothFactory nike = new NikeClothFactory();
        //创建代理类对象
        ProxyClothFactory proxyClothFactory = new ProxyClothFactory(nike);

        proxyClothFactory.produceCloth();
    }
}

上一篇:设计模式之享元模式


下一篇:邮件传送协议SMTP