Padrões de design: Fábrica abstrata versus método de fábrica

Nota: as perguntas estão no final da postagem.

Eu li os outros threads do stackoverflow sobreFábrica abstrata versus método de fábrica. Eu entendo a intenção de cada padrão. No entanto, não estou claro sobre a definição.

O Método de Fábrica define uma interface para criar um objeto, mas permite que as subclasses decidam qual delas instanciar. Um método de fábrica permite que as classes adiem a instanciação para subclasses.

Por outro lado, um Abstract Factory fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

-John Feminella

oFábrica abstrata parece muito semelhante aoMétodo de fábrica. Eu desenhei algumas classes UML para ilustrar meu argumento.

Nota:

O diagrama é dewww.yuml.com então eles não estão perfeitamente orientados. Mas é um serviço gratuito :).Os diagramas podem não ser perfeitos. Eu ainda estou aprendendo oGoF Padrões de design.

Método de fábrica:

Fábrica abstrata (apenas 1 membro):

Fábrica abstrata (mais membros):

Questões:

Se oFábrica abstrata tem apenas um criador e um produto, ainda é oFábrica abstrata padronizar?(uma interface para criar famílias)Pode oMétodo de fábrica criador concreto ser criado a partir de uma interface ou precisa ser de uma classe?(as classes adiam instanciações para subclasses)Se a Abstract Factory puder ter apenas um criador e um produto, é a única diferença entre osFábrica abstrata e aMétodo de fábrica que o criador do primeiro é uma interface e o criador do último é uma classe?

questionAnswers(10)

yourAnswerToTheQuestion