简单工厂模式又称为静态工厂方法模型,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
案例描述订购一个披萨,披萨的种类有cheese披萨,greek披萨,实现针对输入披萨的种类,返回披萨的制作流程。
1.创建披萨抽象类
public abstract class Pizza {
protected String name;
public abstract void prepare();
public void bake() {
System.out.println(name + " baking");
}
public void cut() {
System.out.println(name + " cuting");
}
public void box() {
System.out.println(name + " boxing");
}
public void setName(String name) {
this.name = name;
}
}
- 创建对应披萨种类的类,继承披萨抽象类
public class GreekPizza extends com.design.example.factory.simplefactory.pizzastore.pizza.Pizza {
@Override
public void prepare() {
System.out.println(" 给希腊披萨 准备原材料");
}
}
public class CheesePizza extends com.design.example.factory.simplefactory.pizzastore.pizza.Pizza {
@Override
public void prepare() {
System.out.println(" 给制作奶酪披萨 准备原材料 ");
}
}
- 创建简单工厂类
public class SimpleFactory {
public Pizza createPizza(String orderType) {
System.out.println("使用简单工厂模式");
Pizza pizza = null;
if(orderType.equals("greek")) {
pizza = new GreekPizza();
pizza.setName("希腊披萨");
} else if(orderType.equals("cheese")) {
pizza = new CheesePizza();
pizza.setName("奶酪披萨");
}
return pizza;
}
}
- 调用方法
public static void main(String[] args) {
SimpleFactory simpleFactory = new SimpleFactory();
simpleFactory.createPizza("cheese");
}
通过简单工厂类,根据接收到的披萨类型,返回对应的披萨对象。



