抽象工厂模式与工厂方法之间的差异,由一个案例混淆

时间:2013-04-19 06:47:45

标签: abstract-factory factory-method

“工厂方法”和“抽象工厂”之间的主要区别在于工厂方法是单个方法,抽象工厂是对象。但是,有时我不能说它是什么,例如

class Product{

}
interface Facotory{
    public Product create();
}

class FactoryA implements Facotory{
public Product create() {
    return null;
}   
}

class FactoryB implements Facotory{
    public Product create() {
    return null;
    }
}

你能告诉我这是工厂方法还是抽象工厂?谢谢!

1 个答案:

答案 0 :(得分:2)

IMO,您上面的当前示例是工厂方法。

正如您已经使用工厂方法(create)定义了一个接口(Factory),它允许子类(FactoryA和FactoryB)决定实例化哪个类(Product派生类)。