首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工厂方法与工厂对象

工厂方法与工厂对象
EN

Stack Overflow用户
提问于 2012-02-03 02:50:26
回答 1查看 2.8K关注 0票数 7

据我所知,Factory方法是简单的Factory,而Factory对象是Abstract Factory?和:

-Factory方法(简单工厂):

代码语言:javascript
复制
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;
    }
}

工厂对象(抽象工厂):

我说的对吗?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-03 02:58:00

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

抽象工厂是另一回事--在那里你有同一抽象概念的多个工厂实现。wikipedia example是关于e GUIFactory的--这是一个抽象工厂,它有两个实现:WinFactoryOSXFactory。客户端代码并不知道它使用的是哪个实现-它只知道工厂创建了Button实例。这使得编写相同的代码成为可能,而不管操作系统是什么。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9118151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档