抽象工厂模式
定义
将一个具体工厂所生产的位于不同等级的一组产品称为一个产品族,是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无需指定所要产品的具体类就能得到同族的不同等级的产品的模式结构
架构
抽象工厂、具体工厂、抽象产品、具体产品
理解
“现代化工厂”
代码

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();
}
}
总结
阿伟计划开一家工厂,工厂要用来生产罐头和糖,不过多久工厂根据计划中的样子建好了,做罐头的车间可以生产荔枝罐头、橘子罐头… 做糖的车间可以生产口香糖、棒棒糖…
计划的工厂–>抽象工厂:用来规定生产一些什么东西
计划生产罐头和糖–>抽象产品:用来规定具体的产品类别
建好的工厂–>具体工厂:用来生产具体产品
荔枝罐头、橘子罐头、口香糖、棒棒糖–>具体产品:最终要使用的东西
在这种模式中你只需要告诉工厂你需要什么产品(对象),工厂就给你生产什么产品(对象)然后你可以拿到生产好的产品去执行产品里面的逻辑。

浙公网安备 33010602011771号