Junior — Middle
Em que casos e para que tarefas se aplica o padrão Factory Method?
sobes.tech IA
Resposta da IA
O padrão Factory Method é utilizado para criar objetos sem especificar a classe concreta do objeto a ser criado. Isto é útil quando:
- É necessário delegar a criação de objetos às subclasses.
- É preciso garantir flexibilidade e extensibilidade do código.
- É necessário esconder a lógica de criação de objetos do cliente.
Exemplo em Python:
from abc import ABC, abstractmethod
class Transport(ABC):
@abstractmethod
def deliver(self):
pass
class Truck(Transport):
def deliver(self):
print("Entrega com camião")
class Ship(Transport):
def deliver(self):
print("Entrega com navio")
class Logistics(ABC):
@abstractmethod
def create_transport(self) -> Transport:
pass
def plan_delivery(self):
transport = self.create_transport()
transport.deliver()
class RoadLogistics(Logistics):
def create_transport(self) -> Transport:
return Truck()
class SeaLogistics(Logistics):
def create_transport(self) -> Transport:
return Ship()
# Uso
logistics = RoadLogistics()
logistics.plan_delivery() # Saída: Entrega com camião
Desta forma, Factory Method permite criar objetos de diferentes classes sem alterar o código que os utiliza.