欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java之静态代理(工厂模式)

程序员文章站 2022-04-22 11:33:50
静态代理代理类被代理类编译期间就被确定工厂模式场景制裙工厂,只有制裙方法。(ClothFac接口)超短裙工厂,实现了制裙工厂的制裙方法,只做超短裙。(MiniskirtFac类 implement ClothFac)代理工厂,超短裙工厂做的超短裙,代理工厂拿到后帮忙给模特穿。这里需要理解:构建制裙工厂对象,代理工厂构造器参数放入制裙工厂(实际创建代理工厂的对象时构造器参数传入被代理对象),这里涉及到java用构造器创建对象的底层原理。/** * 静态代理举例 * */p...

静态代理

代理类被代理类编译期间就被确定

工厂模式

场景

制裙工厂,只有制裙方法。(ClothFac接口)

超短裙工厂,实现了制裙工厂的制裙方法,只做超短裙。(MiniskirtFac类 implement ClothFac)

代理工厂,超短裙工厂做的超短裙,代理工厂拿到后帮忙给模特穿。这里需要理解:构建制裙工厂对象,代理工厂构造器参数放入制裙工厂(实际创建代理工厂的对象时构造器参数传入被代理对象),这里涉及到java用构造器创建对象的底层原理。

/**
 * 静态代理举例
 *
 */
public class StaticProxyTest {
    public static void main(String[] args) {
        MiniskirtFac miniskirtFac = new MiniskirtFac(); // 首先要有超短裙工厂存在
        ClothFac proxySkirtFac = new ProxySkirtFac(miniskirtFac); // 将超短裙对象传入代理工厂,创建代理对象
        proxySkirtFac.produceCloth(); // 代理工厂会让超短裙工厂制超短裙裙,并且先帮模特脱了裤子,再为模特穿上超短裙
    }
}

interface ClothFac{ // 制衣工厂
    void produceCloth(); // 制衣
}
class MiniskirtFac implements ClothFac{ // 超短裙工厂要去实现制衣工厂里的制衣方法
    @Override
    public void produceCloth() {
        System.out.println("做一条超短裙");
    }
}
class ProxySkirtFac implements ClothFac{ // 代理制作各种裙子的工厂
    private ClothFac clothFac;
    public ProxySkirtFac(ClothFac clothFac){
        this.clothFac = clothFac;
    }
    @Override
    public void produceCloth() {
        System.out.println("帮模特脱裤子");
        clothFac.produceCloth();
        System.out.println("帮模特穿上超短裙");
    }
}

 

 

 

 

本文地址:https://blog.csdn.net/m0_47119598/article/details/109226351

相关标签: 1024程序员节