Skip to content

Factory Methods

Thiago Heron Ávila edited this page Oct 2, 2020 · 1 revision

Factory Method

Aplicabilidade:

  • É utilizado quando não soubemos com antecedência quais os tipos e dependências dos objetos com o código irá funcionar. Assim, o código separa a construção do "produto" de quem vai utilizar o "produto". Logo, torna-se mais fácil estender o código da construção de produto independente do restante do código.
  • Torna-se mais fácil adicionar um novo tipo de produto na aplicação, precisa apenas criar uma nova subclasse criadora e substituir o método nela.
  • No mesmo sentido, serve também para quando queremos prover para sua biblioteca para os usuários de uma maneira fácil de estender seus componentes internos

Prós:

  • Evita forte acoplamento entre quem é o criador e os produtos.
  • Single Responsibility Principle - Pode mover a criação do código de produtos para um único local do programa.
  • Open/Closed Principle - Pode introduzir novos tipos de produtos sem quebrar o restante do código.

Contras:

  • O código poderá ficar mais complexo, pois é necessário introduzir muitas novas subclasses para implementar o padrão. O melhor cenário é quando você está introduzindo o padrão em uma hierarquia existente de classes criadoras.
Clone this wiki locally