据我所知,Factory方法是简单的Factory,而Factory对象是Abstract Factory?和:
-Factory方法(简单工厂):
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;
}
}工厂对象(抽象工厂):
我说的对吗?
工厂模式的实现有多少,它们的区别是什么?
发布于 2012-02-03 02:58:00
不是的。工厂方法是不需要任何状态的工厂。工厂类本身就是一个类--它有状态,也有改变状态的方法。最后,调用.create()方法,该方法使用其当前状态创建一个不同类型的新对象。
抽象工厂是另一回事--在那里你有同一抽象概念的多个工厂实现。wikipedia example是关于e GUIFactory的--这是一个抽象工厂,它有两个实现:WinFactory和OSXFactory。客户端代码并不知道它使用的是哪个实现-它只知道工厂创建了Button实例。这使得编写相同的代码成为可能,而不管操作系统是什么。
https://stackoverflow.com/questions/9118151
复制相似问题