抽象工厂模式
定义
将一个具体工厂所生产的位于不同等级的一组产品称为一个产品族,是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无需指定所要产品的具体类就能得到同族的不同等级的产品的模式结构
架构
抽象工厂、具体工厂、抽象产品、具体产品
理解
“现代化工厂”
代码
AbstractFactory(抽象工厂):
public interface AbstractFactory {
/**创建产品的方法*/
NewBeeA creatNewBeeA();
NewBeeB creatNewBeeB();
}
NewBeeA(抽象产品):
public interface NewBeeA {
void show();
}
NewBeeB(抽象产品):
public interface NewBeeB {
void show();
}
Factory(具体工厂):
public class Factory implements AbstractFactory {
@Override
public NewBeeA creatNewBeeA() {
System.out.println("生产NewBeeA");
return new BeeA();
}
@Override
public NewBeeB creatNewBeeB() {
System.out.println("生产NewBeeB");
return new BeeB();
}
}
BeeA(具体产品):
public class BeeA implements NewBeeA {
@Override
public void show() {
System.out.println("我是产品BeeA");
}
}
BeeB(具体产品):
public class BeeB implements NewBeeB{
@Override
public void show() {
System.out.println("我是产品BeeB");
}
}
Test(测试类):
public class Test {
public static void main(String[] args) {
//创建工厂
AbstractFactory facory = new Factory();
//使用工厂生产产品
NewBeeA beeA = facory.creatNewBeeA();
beeA.show();
//使用工厂生产另一个产品
NewBeeB beeB = facory.creatNewBeeB();
beeB.show();
}
}
总结
阿伟计划开一家工厂,工厂要用来生产罐头和糖,不过多久工厂根据计划中的样子建好了,做罐头的车间可以生产荔枝罐头、橘子罐头… 做糖的车间可以生产口香糖、棒棒糖…
计划的工厂–>抽象工厂:用来规定生产一些什么东西
计划生产罐头和糖–>抽象产品:用来规定具体的产品类别
建好的工厂–>具体工厂:用来生产具体产品
荔枝罐头、橘子罐头、口香糖、棒棒糖–>具体产品:最终要使用的东西
在这种模式中你只需要告诉工厂你需要什么产品(对象),工厂就给你生产什么产品(对象)然后你可以拿到生产好的产品去执行产品里面的逻辑。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南