[Design Patterns] Trabalhando com Factories

Eae gente bonita, beleza?

Continuando nossos estudos e abrindo mais uma série de conteúdo por aqui, hoje irei falar sobre o design pattern Factory.

O que é um design pattern?

Começando do começo, um design pattern ou padrão de projeto é um…


This content originally appeared on DEV Community and was authored by Cristian Magalhães

Eae gente bonita, beleza?

Continuando nossos estudos e abrindo mais uma série de conteúdo por aqui, hoje irei falar sobre o design pattern Factory.

O que é um design pattern?

Começando do começo, um design pattern ou padrão de projeto é uma solução conhecida para um problema conhecido. Existem vários tipos de design patterns para se aprender e conhecer. Você não precisa saber todos de cabeça e cada detalhe de implementação, porém é importante que você conheça a existência e o problema que ele soluciona para saber o que e onde procurar. O site Refactoring Guru contém uma lista de padrões de projetos e suas explicações em português, recomendo muito que tenha ele salvo nos seus favoritos.

É muito importante saber trabalhar e conhecer padrões de projetos, pois assim nós usamos formas conhecidas de se trabalhar e deixamos de reinventar a roda, além de mantermos uma codebase mais organizada e fácil de se dar manutenção no futuro.

Tipos de padrões?

Existem tipos de padrões? Sério? Sim!! Como dito anteriormente, um padrão de projeto é uma solução conhecida para um problema conhecido e bom, existem vários tipos de problemas na área de T.I., na verdade, não falta problema. Então vou te apresentar os tipos de padrões de projetos.

  • Criacionais: Os padrões criacionais fornecem mecanismos de criação de objetos que aumentam a flexibilidade e a reutilização de código.

  • Estruturais: Os padrões estruturais explicam como montar objetos e classes em estruturas maiores, enquanto ainda mantém as estruturas flexíveis e eficientes.

  • Comportamentais: Os padrões comportamentais cuidam da comunicação eficiente e da atribuição de responsabilidades entre objetos.

O Padrão Factory

Bom agora que você já sabe o que é um padrão de projeto ou design pattern, vamos falar um pouco sobre o padrão em questão, o padrão Factory.

O padrão Factoryé um padrão criacional, ou seja, é uma forma de criar objetos. A tradução de Factory é fábrica, então não tem como ser mais claro que isso, um padrão usado para criar coisas.

A ideia do padrão Factoryé centralizar as dependências em um só lugar e expor apenas o que precisa ser realmente usado. Vamos a um exemplo. Eu crio um Factory para criar um UserService. Bom o que o userService precisa? De um repository para se comunicar com o banco de dados e das informações do banco para o repository se conectar e fazer as operações necessárias. Para fazer isso nós criamos uma Factory que busca e centraliza todas essas dependências e expõe o userService prontinho para usarmos como no exemplo abaixo.

class UserFactory {
    static async createInstance() {
        const db = new Database({ connectionString: 'mongodb://localhost:27017/test' }); // Criando conexão com o banco
        const dbConnection = await db.connect(); // Conectando ao banco
        const userRepository = new UserRepository({ dbConnection }); // Passando conexão do banco para o repository, pois o mesmo depende da conexão
        const userService = new UserService({ userRepository }); // Passando o repository para o service, pois o mesmo depende do repository
        return userService; // Retornar o service pronto para uso!
    }
}

Espero que tenha ficado claro o que é uma Factory para você! Se tiver alguma dúvida e sugestão, fique a vontade para comentar. Em breve trarei mais padrões de projetos para o blog.

Referências

Se chegou até aqui, me segue la nas redes vizinhas.

thank you dog


This content originally appeared on DEV Community and was authored by Cristian Magalhães


Print Share Comment Cite Upload Translate Updates
APA

Cristian Magalhães | Sciencx (2024-08-14T14:50:15+00:00) [Design Patterns] Trabalhando com Factories. Retrieved from https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/

MLA
" » [Design Patterns] Trabalhando com Factories." Cristian Magalhães | Sciencx - Wednesday August 14, 2024, https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/
HARVARD
Cristian Magalhães | Sciencx Wednesday August 14, 2024 » [Design Patterns] Trabalhando com Factories., viewed ,<https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/>
VANCOUVER
Cristian Magalhães | Sciencx - » [Design Patterns] Trabalhando com Factories. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/
CHICAGO
" » [Design Patterns] Trabalhando com Factories." Cristian Magalhães | Sciencx - Accessed . https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/
IEEE
" » [Design Patterns] Trabalhando com Factories." Cristian Magalhães | Sciencx [Online]. Available: https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/. [Accessed: ]
rf:citation
» [Design Patterns] Trabalhando com Factories | Cristian Magalhães | Sciencx | https://www.scien.cx/2024/08/14/design-patterns-trabalhando-com-factories/ |

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.