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.
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?