Qual é a diferença entre o padrão de fábrica e o padrão abstrato de fábrica
Índice:
- O que é padrão de fábrica
- O que é Abstract Factory Pattern
- Diferença entre o padrão de fábrica e o padrão abstrato de fábrica
o principal diferença entre o padrão de fábrica e o padrão de fábrica abstrato é que o O padrão de fábrica fornece um método de criação de objetos sem especificar a classe exata usada para criá-lo, enquanto o padrão de fábrica abstrato fornece um método para combinar um grupo de fábricas individuais sem especificar suas classes concretas.
Os padrões de projeto são as soluções para problemas gerais que os desenvolvedores de software enfrentam ao desenvolver software. Eles são genéricos e não dependem do tipo de sistema ou da linguagem de programação. Além disso, são soluções comprovadas e oferecem as melhores práticas. Existem três tipos de padrões de projeto: criacionais, estruturais e comportamentais. Os padrões criacionais fornecem um método para criar objetos enquanto escondem a lógica criacional. Além disso, tornam o programa mais flexível. O padrão de fábrica e o padrão de fábrica abstrato são dois desses padrões de design criacionais.
Padrão de fábrica abstrato, padrão de fábrica
O que é padrão de fábrica
Um padrão de fábrica fornece um bom método para criar objetos. Usando este método, o programador pode criar objetos sem expor a lógica criacional. Também é possível referir o objeto recém-criado usando uma interface comum. Consulte o programa abaixo.
Figura 1: Interface de forma
Figura 2: Classe Retângulo
Figura 3: Classe Square
Figura 4: classe de círculo
Figura 5: classe ShapeFactory
Figura 6: classe principal
A interface Shape possui um método abstrato chamado draw. Retângulo, Quadrado e Círculo são classes. Eles implementam a interface Shape. Portanto, essas classes fornecem uma implementação para o desenho do método. O método draw em cada classe tem sua própria implementação. A classe ShapeFacotry possui um método chamado getShape. Recebe uma corda. Este método retornará um objeto de acordo com a string recebida.
No método principal, existe um objeto chamado forma. É do tipo ShapeFactory. O método getShape é chamado usando esse objeto. A string “Retângulo” é passada para ele. O objeto de retorno é armazenado em shape1, que é do tipo Shape. Da mesma forma, as strings “SQUARE” e “CIRCLE” são passadas para getShape. Os objetos de retorno são armazenados em shape2 e shape3. Cada objeto chama o método draw e o método draw correspondente é executado de acordo com a string passada.
O programa principal usa a classe ShapeFactory para obter um objeto Shape. Ele passa a string necessária para a ShapeFactory para obter o tipo de objeto de que precisa.
O que é Abstract Factory Pattern
O Abstract Factory Pattern usa uma super fábrica e cria outras fábricas. Também é conhecido como fábrica de fábricas. Nesse padrão, uma interface cria uma fábrica de objetos relacionados sem especificar explicitamente suas classes. Em outras palavras, depois de criar a superfábrica, ela pode criar outras fábricas. Consulte o programa abaixo.
Figura 7: Interface colorida
Figura 8: Classe amarela
Figura 9: classe laranja
Figura 10: Classe roxa
Figura 11: classe AbstractFactory
Figura 12: classe ShapeFactory
Figura 13: classe ColorFactory
Figura 14: classe FactoryProducer
Figura 15: Programa principal
Interface Shape e as classes Rectangle, Square, Circle são as mesmas da seção anterior. A cor é uma interface; ele tem um método abstrato chamado fill. As classes Yellow, Orange e Purple implementam essa interface. Portanto, essas classes fornecem implementação para o método de preenchimento. A classe AbstrcatFactory possui dois métodos como getShape e getColor. A classe ShapeFactory estende AbstractFacotry. Da mesma forma, a classe ColorFactory estende AbstractFactory. Essas classes têm as implementações para os métodos getShape e getColor.
A classe FactoryProducer tem um método chamado getFactory que retorna um objeto do tipo AbstractFactory. Ele retorna um objeto ShapeFactory ou ColorFactory ou nulo, dependendo da string que obtém. Finalmente, o método principal usa o FactoryProducer para obter AbstractFactory para obter fábricas de classes concretas.
Diferença entre o padrão de fábrica e o padrão abstrato de fábrica
Definição
Padrão de fábrica é um padrão de criação que usa um método para lidar com o problema de criação de objetos sem ter que especificar a classe exata do objeto que será criado. O padrão de fábrica abstrato, por outro lado, é um padrão de criação que fornece uma maneira de encapsular um grupo de fábricas individuais que têm um tema comum, sem especificar suas classes concretas. Assim, essas definições explicam a principal diferença entre o padrão de fábrica e o padrão de fábrica abstrato.
Escondendo a construção
Outra diferença entre o padrão de fábrica e o padrão de fábrica abstrato é que o padrão de fábrica oculta a construção de um único objeto, enquanto o padrão de fábrica abstrato oculta a construção de uma família de objetos relacionados.
Conclusão
O padrão de fábrica e o padrão de fábrica abstrata são dois padrões de design criacionais. O padrão de fábrica fornece um método de criação de objetos sem especificar a classe exata usada para criá-lo. Em contraste, o padrão de fábrica abstrato fornece um método para combinar um grupo de fábricas individuais sem especificar suas classes concretas. Portanto, esta é a principal diferença entre o padrão de fábrica e o padrão de fábrica abstrato.
Referência:
1. “Padrão de Design do Método de Fábrica”. Javatpoint, disponível aqui.2. “Abstract Factory Pattern.” Javatpoint, disponível aqui.
![Qual é a diferença entre o padrão de fábrica e o padrão abstrato de fábrica Qual é a diferença entre o padrão de fábrica e o padrão abstrato de fábrica](https://img.books-kingdom.com/images/002/image-4710.jpg)