Smart Machines and Factories Blog Uncategorized Padrão de fábrica em TypeScript usando Type Map

Padrão de fábrica em TypeScript usando Type Map

Padrão de fábrica em TypeScript usando Type Map post thumbnail image

Um exemplo prático de implementação do padrão factory que tira vantagem do sistema de tipagem do TypeScript

Padrão de Fábrica

O padrão Factory é um dos padrões de criação mais comuns. Liga a aplicação de forma flexível, ocultando os detalhes de implementação do código cliente através da interface. Deixa a criação de instâncias de objectos para a implementação da fábrica.

Este artigo tem como objetivo mostrar como melhorar o “criador” da fábrica com um mapa de tipos TypeScript.

Implementação da Fábrica de Utilizadores

Vamos utilizar um exemplo típico de uma fábrica que cria diferentes tipos de utilizadores: Gerente e Desenvolvedor, por uma questão de simplicidade. Pode imaginar que haverá muitos mais tipos num projeto real.

Em primeiro lugar, vamos definir nossas classes Gerente e Desenvolvedor.

Interface

No código acima, definimos uma IStaff para que ambas as classes Manager e Developer a implementem. Isso é essencial para que o padrão Factory funcione, de modo que o código cliente não precisa conhecer uma classe específica, apenas a interface.

Outra coisa notável é o uso do “NullStaff” (Padrão de Objeto Nulo). Simplifica o código do cliente e evita erros de execução quando é introduzido um tipo de utilizador inválido.

Finalmente, temos a UserFactory implementada abaixo e a UserServicecomo o cliente que consome a fábrica. O UserServicenão conhece a classe Manager ou Developer. Ele apenas passa um userTypee recebe de volta uma instância concreta da classe do utilizador.

UserFactory

Coisas a melhorar

Há algumas coisas que não me satisfazem inteiramente.

Em primeiro lugar, o caso Switch é utilizado na função de criação da fábrica estática. É um problema de código, uma vez que vai continuar a crescer com a adição de mais tipos de utilizadores.

Related Post