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
上一篇: cgb2007-京淘day13
下一篇: 心脏科医生葬礼