Различия между абстрактным фабричным шаблоном и фабричным методом, смущенные одним случаем

Основное различие между «фабричным методом» и «абстрактной фабрикой» заключается в том, что фабричный метод — это единственный метод, а абстрактная фабрика — это объект. Но, иногда я не могу сказать, что это такое, например

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;
    }
}

Можете ли вы сказать мне, что это фабричный метод или абстрактная фабрика? Спасибо!


person tomcat    schedule 19.04.2013    source источник
comment
Возможен дубликат? stackoverflow.com/questions/5739611/   -  person Juan Antonio Gomez Moriano    schedule 19.04.2013
comment
Я это знаю, но не могу найти ответ, что мне нужно. @Juan   -  person tomcat    schedule 19.04.2013


Ответы (1)


IMO, ваш текущий пример выше - Factory Method.

Поскольку вы определили интерфейс (Factory) с фабричным методом (create), который позволяет подклассам (FactoryA и FactoryB) решать, какой класс создавать (классы, производные от продукта).

person SBirthare    schedule 19.04.2013
comment
Отвечает ли это на ваш вопрос, если да, отметьте его ответом. Если у вас есть дополнительный вопрос, отправьте его. - person SBirthare; 23.04.2013