🧠 Desmistificação do padrão de método da fábrica com uma torção de Manabita

Olá, vamos mergulhar no mundo fascinante dos padrões de design. Começaremos com um dos mais úteis e simples para começar: o método da fábrica. Ao longo deste post, veremos a teoria, um exemplo prático e, o melhor de tudo, o “aterraremos” com um caso de uso 100% equatoriano. Qual é o método da fábrica e como funciona? O método da fábrica é um padrão de design criativo que resolve o problema de criar objetos sem especificar suas classes de concreto. Parece complicado? De jeito nenhum. Imagine que você tem uma classe que precisa criar objetos, mas não sabe exatamente quais criará. Pode depender de uma configuração, parâmetros ou ambiente. Em vez de preencher seu código com as instruções IF-ELSE ou SWITCH para instanciar cada objeto com o novo, você delega essa responsabilidade a um método especial: o método da fábrica. Isso nos dá uma flexibilidade incrível, pois o código principal funciona com uma interface comum e não se importa com a implementação específica do objeto que recebe. Como eu poderia usá -lo? O exemplo clássico: um sistema de pagamento em nosso projeto, temos um exemplo perfeito que simula um sistema de pagamento. O produto (pagamento): primeiro, definimos uma interface que estabelece o contrato. Todos os métodos de pagamento devem ter uma maneira de “efetuar o pagamento”. // src/main/java/ec/com/padrão/criação/fábricaMethod/pagamento/pagamento. } Os produtos de concreto (Payment, GooglePayment): Em seguida, criamos as classes que implementam essa interface. Cada um representa um tipo específico de pagamento. // src/main/java/ec/com/padrão/criação/factorymethod/pagey/cardPayment.java classe pública CardPayment implementa o pagamento {public void dopayment () {System.out.println (“fazendo pagamento com cartão”); }} A fábrica (Factory Factory): Aqui está a mágica. Criamos uma classe cujo único trabalho é criar e retornar o objeto correto com base em um parâmetro. // src/main/java/ec/com/padronizo/criação/fábricaMethod/pagey/pageyFactory.java public class PaymentFactory {public Static Payment BuildPayment (TypePayment typePayment) {switch (typePayment) {Case Card: Return CardPayment (); case google: retorna new googlePayment (); Case PayPal: Retorno New PayPalPayment (); Padrão: jogue novo IllegalargumentException (“Não é esse pagamento”); }}} 🔹 Explicação simples com um exemplo do mundo real Imagine que você trabalha em um banco: o cliente escolhe pagar com um cartão, Google Pay ou PayPal. A fábrica (Factory) recebe essas informações (o enumeração do TypePayment). A fábrica cria o objeto apropriado: se for um cartão → Retorna um payment de cartão. Se for o Google → Retorna um GooglePayment. Se for PayPal → Retorna um PayPalPayment. O sistema chama DoPayment () independentemente do tipo de pagamento, porque todas as classes implementam a mesma interface de pagamento. 👉 Em resumo: este diagrama mostra um padrão de fábrica em que uma fábrica centraliza a criação de diferentes tipos de pagamento, usando uma enumeração para decidir qual classe concreta instanciar. Adaptando -o “ao estilo local”: um restaurante de frutos do mar em Manabí agora, vamos para nossas próprias coisas! Vamos esquecer os pagamentos e a tecnologia por um momento e pensar em algo que nos define: comida. Imagine que estamos construindo o software para um restaurante de frutos do mar em Portoviejo. Em Manabí, o mesmo prato pode ter variações. Por exemplo, um “ceviche” pode ser feito com peixe, camarão ou mistura. Eles são todos ceviches, mas são preparados de maneira ligeiramente diferente. É aqui que o método da fábrica brilha. 💻 Exemplo de código -fonte do exemplo Você pode encontrar todo o código deste exemplo na pasta do projeto no github: estrutura de arquivos (exemplo) src/ ├─ ceviche.java # interface do produto ├─ cevicheType.java # enum com tipos ├─ fishceviche.java ├─ shripviche.java ├ -mixedcevche.java ├─ shripvcheviche.java ├ ├via mixedcevche.java ├─ shripviche.java ├ ├via mixedcevche.java ├─ shripviche.java ├ ├via mixedcevche.java ├sto Jipijapaceviche.java └─ manabitaritarestaurantfactory.java entrar no modo de tela cheia de tela cheia

Fonte

Você pode ter perdido