Continuando a nossa série, apresento-lhes mais um padrão de projeto criacional: Abstract Factory.
Temos a seguinte situação:
Um banco possui dois tipos de contas:
- Corrente
- Poupança
Cada uma delas pode ser categorizada como:
- Simples
- Normal
- Plus
Cada uma dessas características possuem as suas vantagens particulares. Como aplicar um padrão de projeto criacional nesses objetos de maneira a ter-se menos impacto ao inserir-se um tipo de conta nova ou mais características das contas?
Resposta: Abstract Factory!
Objetivo:
- Fornecer uma interface a ser utilizada para criar famílias de objetos relacionados ou dependentes sem realmente especificar suas classes concretas.
Benefícios:
- Isola o cliente das classes concretas(da implementação). Facilita a troca de famílias de objetos;
- Promove a consistência entre objetos.
Aplicabilidade:
- O sistema precisa ser independente da maneira como seus objetos são criados, compostos e representados;
- O sistema precisa ser configurado com um objeto de uma família de vários objetos;
- A família de objetos relacionados é concebida para ser utilizada em conjunto e essa restrição precisa ser imposta;
- Deseja-se fornecer uma biblioteca de objetos que não mostre as implementações e somente revele as interfaces.
Então é isto galera! Qualquer dúvida, é só deixar o seu comentário que tentarei ajudar o mais rápido possível! ;)
Um abraço a todos e até o próximo post!
.