设计模式之抽象工厂模式
基本介绍
- 抽象工厂模式: 定义了一个Interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类。
- 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。
- 从设计层面看,抽象工厂模式就是对简单工厂模式的改进
- 将工厂抽象成两层,抽象工厂和具体实现的工厂子类。程序元可以根据创建对象类型使用对应的工厂子类,这样将单个的简单工厂类变成了工厂簇,更利于代码的维护和扩展。
类图:
抽象工厂模式代码展示:
package abstractFactory.pizza.pizza.order;
import abstractFactory.pizza.LDfactory;
import abstractFactory.pizza.Pizza;
import abstractFactory.pizza.absFactory;
import org.omg.PortableInterceptor.ObjectReferenceFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @Author:wmy
* @Date:2019/12/27
* @Description:
**/
public class OrderPizza {
absFactory factory;
public OrderPizza(absFactory factory){
setFactory(factory);
}
public void setFactory(absFactory factory){
Pizza pizza = null;
String orderType = "";
this.factory = factory;
do {
orderType = getType();
pizza = this.factory.createPizza(orderType);
if(pizza!=null){
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
}else {
System.out.println("订单失败");
break;
}
}while (true);
}
public String getType(){
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入订购的披萨种类1 :");
String str = bufferedReader.readLine();
return str;
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
}