Design Pattern: Factory Method

Os designs de criação, nos quais se inclui o Factory, são utilizados para criar objetos sem expor ao cliente a lógica pela qual aquele objeto é criado. Assim, as subclasses ligadas a uma interface ou classe abstrata podem ser instanciadas sem que o cli…


This content originally appeared on DEV Community and was authored by Guilherme Pirani

Os designs de criação, nos quais se inclui o Factory, são utilizados para criar objetos sem expor ao cliente a lógica pela qual aquele objeto é criado. Assim, as subclasses ligadas a uma interface ou classe abstrata podem ser instanciadas sem que o cliente se importe com o tipo específico do objeto sendo criado.

De uma maneira mais prática, o diagrama abaixo é um exemplo de implementação de uma Factory:
SAMPLE FACTORY UML

Pode parecer sem sentido o simples ato de levar o construtor de um objeto para uma outra parte do programa, mas é justamente esse pequeno ato que gera a abstração que queremos, algo extremamente benéfico quando se trata de grandes projetos. Assim podemos sobrescrever o método de criação em uma subclasse, alterando o objeto criado, não é necessário reescrevermos toda a lógica de criação para cada subclasse que quisermos adicionar ao nosso programa, aplicamos princípios SOLID em nosso código, geramos um baixo acoplamento e facilitamos a manutenção.

Quando utilizar o Factory Method:

  • Quando o cliente não sabe de antemão o tipo de objeto que deverá ser criado.
  • Para permitir a extensão do código sem ter que realizar alterações em outras partes do projeto.
  • Para eliminar duplicação de código na criação de objetos.

Prós do Factory Method:

  • Evita acoplamento
  • Facilita Manutenção
  • Responsabilidade única (SOLID)
  • Aberto/Fechado (SOLID)

Contras do Factory Method:

  • Os produtos para serem retornados precisam ter uma classe ou interface base em comum.
  • Gera uma grande quantidade de classes no seu projeto. No entanto cabe aqui uma observação: é responsabilidade do desenvolvedor considerar os trade-offs daquilo que ele implementa. Nesse caso da quantidade de classes, podemos abrir mão de um pró do Factory de forma a diminuir a quantidade de classes, porém aumentando o acoplamento do código (usando switch case na Factory por exemplo, transformando o padrão em um Simple Factory)
  • Outros patterns podem oferecer mais flexibilidade, como Builder e Prototype, porém trazendo maior complexidade. Assim muitos projetos iniciam utilizando Factory e depois migram para outros design patterns.

Para um tutorial prático de como aplicar o Factory Method CLIQUE AQUI.

.ltag__user__id__754899 .follow-action-button { background-color: #000000 !important; color: #ffffff !important; border-color: #000000 !important; }
guilhermepirani image

linha horizontal

Disclaimer

A VaiVoa incentiva seus Desenvolvedores em seu processo de crescimento e aceleração técnica. Os artigos publicados não traduzem a opinião da VaiVoa. A publicação obedece ao propósito de estimular o debate.

logo vaivoa


This content originally appeared on DEV Community and was authored by Guilherme Pirani


Print Share Comment Cite Upload Translate Updates
APA

Guilherme Pirani | Sciencx (2022-04-05T20:52:56+00:00) Design Pattern: Factory Method. Retrieved from https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/

MLA
" » Design Pattern: Factory Method." Guilherme Pirani | Sciencx - Tuesday April 5, 2022, https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/
HARVARD
Guilherme Pirani | Sciencx Tuesday April 5, 2022 » Design Pattern: Factory Method., viewed ,<https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/>
VANCOUVER
Guilherme Pirani | Sciencx - » Design Pattern: Factory Method. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/
CHICAGO
" » Design Pattern: Factory Method." Guilherme Pirani | Sciencx - Accessed . https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/
IEEE
" » Design Pattern: Factory Method." Guilherme Pirani | Sciencx [Online]. Available: https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/. [Accessed: ]
rf:citation
» Design Pattern: Factory Method | Guilherme Pirani | Sciencx | https://www.scien.cx/2022/04/05/design-pattern-factory-method-2/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.