Como Implementar O Padrão de Projeto Factory Method em Python

Este artigo tem por finalidade apresentar a definição, uso e melhores práticas do padrão de projeto Factory Method em Python, a fim de que possamos saber quando e porque utilizá-lo corretamente.

factory method em python

Série Design Patterns em Python

Antes de mais nada, eu gostaria de deixar aqui o repositório no github que eu criei com os exemplos dessa série.

Portanto, se por acaso você quiser conferir todo o código que estamos escrevendo neste artigo, basta acessar o link:

O que é o Factory Method?

factory method em python




Primeiramente, o design pattern Factory Method é um padrão de criação de objetos onde é feita a utilização de métodos de construção para resolver os problemas de criação de um objeto.

Todavia, através dele nós não temos a necessidade de especificar qual o objeto que será criado.

Com o intuito de implementarmos o padrão Factory Method, nós precisaremos entender um pouco quais são os participantes deste design pattern.

A Definição da Fábrica

O Factory é formado primeiramente pela própria definição da fábrica, que definirá o contrato de criação dos objetos.




A Implementação da Fábrica

Logo depois, nós precisaremos implementar tal fábrica, sendo o segundo passo criar uma fábrica concreta para criar o objeto em questão.

O Produto

E por ultimo, mas não menos importante, nós temos o produto em si, o objeto que será criado pela nossa fábrica.




Um Exemplo Mais Real

Já que nós estamos fabricando muitos celulares durante essa série de artigos sobre design patterns, o que você acha de construir uma fábrica de celulares com o Factory Method em Python?

Factory Method em Python – Definindo um Celular

Primeiramente, vamos definir um celular, e o que ele pode fazer:


Bem, este é um caso bem simples, portanto o nosso celular poderá fazer apenas ligações!

Factory Method em Python – Definindo Celulares Especializados

Em segundo lugar, vamos definir alguns celulares que podem fazer as ligações!

Factory Method em Python – Criação em Massa de Celulares

Agora que já sabemos o que vamos construir, vamos ver como ficará a nossa fábrica!

Esteira da Fábrica

E por ultimo, vamos testar um pouco o funcionamento dos nossos celulares!


E como já era de se esperar, o resultado é:

Um Pouco de Duck Typing

Aqui nós não poderemos eliminar por completo todas as classes que serviam como um “contrato”, pois nós definimos a ação de fazer uma ligação na fábrica, lembra? Porém, neste momento nós podemos nos livrar do pacote abc, e utilizar um pouco de duck typing.


E como já nos acostumamos, nós não precisamos alterar em absolutamente nada o nosso código final:

Conclusão

Essa conclusão definitivamente será uma constante ao longo desta série de artigos.

Nós precisamos tomar muito cuidado ao pensar em utilizar padrões de projetos em nosso código, principalmente quando estamos fazendo uso de uma linguagem que não impões grandes restrições quanto outras linguagens mais tradicionais, como C++, Java ou C#.

E ai, o que achou do padrão de projeto Factory, e o que você achou do Factory Method em Python?

Pra quem veio do Java, com certeza esse é um padrão que está na ponta dos dedos! 😀

Não deixe de comentar abaixo sobre o que você achou, além de deixar a sua sugestão ou crítica!




Leave a Reply