工厂方法VS工厂对象

dri*_*ter 7 java design-patterns factory factory-method factory-pattern

据我所知,工厂方法是简单工厂,工厂对象是抽象工厂?和:

- 工厂方法(简单工厂):

public class SimplePizzaFactory {
    public static final int CHEESE = 1;
    public static final int PEPPERONI = 2;
    public static final int VEGGIE = 3;

    public static Pizza createPizza(int type) {
        Pizza pizza = null;

        if (type == CHEESE) {
            pizza = new CheesePizza();
        } else if (type == PEPPERONI ) {
            pizza = new PepperoniPizza();
        } else if (type == VEGGIE ) {
            pizza = new VeggiePizza();
        }

        return pizza;
    }
}
Run Code Online (Sandbox Code Playgroud)

工厂对象(抽象工厂):

我对吗?

工厂模式的实现有多少,它们的区别是什么?

Boz*_*zho 6

不可以.工厂方法是不需要任何状态的工厂.工厂类本身就是一个类 - 它具有状态和改变该状态的方法.最后,您调用该.create()方法,并使用其当前状态创建不同类型的新对象.

抽象工厂是另一回事 - 你有同一个抽象概念的多个工厂实现.的维基百科例子是关于E GUIFactory-这是一个抽象工厂,它有两个实现:WinFactoryOSXFactory.客户端代码不知道它正在使用哪个实现 - 它只知道工厂创建Button实例.无论操作系统如何,都可以编写相同的代码.