Head First Design Patterns 将 Simple Factory 描述为:
public class SimplePizzaFactory {
public Pizza createPizza(String type) {
Pizza pizza = null;
if (type.equals(“cheese”)) {
pizza = new CheesePizza();
} else if (type.equals(“pepperoni”)) {
pizza = new PepperoniPizza();
} else if (type.equals(“clam”)) {
pizza = new ClamPizza();
} else if (type.equals(“veggie”)) {
pizza = new VeggiePizza();
}
return pizza;
}
}
与工厂方法模式和抽象工厂模式相比,简单工厂模式有什么缺点?
在Gamma等人的《设计模式》一书中,工厂方法模式中的基于类的参数化工厂方法似乎与简单工厂类似。参数化的抽象工厂是否正是简单工厂?《设计模式》是否提到了参数化的抽象工厂?
Collections2.newLinkedList()
在我编写的所有应用程序中都没有更改)。简单工厂适用于您想要添加新结果的情况,但对象的构建大部分相同。抽象工厂适用于整个构建过程根据所得到的对象的实际实现而变化的情况。 - PEdroArthur