Como implementar o padrão Factory no PHP?
O padrão Factory é um dos padrões de projeto mais utilizados no PHP. Ele encapsula a criação de objetos e permite instanciá-los sem expor diretamente a lógica de construção. Isso é útil para aumentar a flexibilidade e escalabilidade do código.
Implementação Simples do Padrão Factory
<?php
interface Transporte {
public function entregar();
}
class Caminhao implements Transporte {
public function entregar() {
return "Entrega realizada por caminhão!";
}
}
class Navio implements Transporte {
public function entregar() {
return "Entrega realizada por navio!";
}
}
class TransporteFactory {
public static function criarTransporte($tipo) {
if ($tipo === "caminhao") {
return new Caminhao();
} elseif ($tipo === "navio") {
return new Navio();
}
throw new Exception("Tipo de transporte inválido");
}
}
$transporte = TransporteFactory::criarTransporte("caminhao");
echo $transporte->entregar();
?>
Explicação do Código
- Criamos uma interface
Transporte
com o métodoentregar()
. - Implementamos as classes
Caminhao
eNavio
, que seguem essa interface. - A classe
TransporteFactory
contém o método estáticocriarTransporte()
, que retorna uma instância do transporte desejado. - Dessa forma, podemos criar objetos dinamicamente sem precisar instanciá-los diretamente.
Por que utilizar o padrão Factory no PHP?
O padrão Factory é muito utilizado em aplicações PHP para melhorar a organização do código e facilitar a criação de objetos de forma dinâmica. Ele é amplamente empregado em frameworks e sistemas modulares.
Algumas aplicações:
- Criação de objetos de forma dinâmica e organizada
- Facilidade na manutenção e escalabilidade do código
- Implementação em frameworks para gerenciamento de dependências
- Uso em sistemas modulares para criação de componentes reutilizáveis
Dicas para quem está começando
- Use o padrão Factory para encapsular a criação de objetos.
- Evite a necessidade de instanciar classes diretamente no código.
- Implemente interfaces para garantir que os objetos criados sigam um padrão.
- Teste diferentes tipos de fábricas, como Simple Factory e Factory Method.
- Entenda como frameworks PHP utilizam o Factory para criar serviços automaticamente.
Contribuições de Daniel Moreira