Aprenda a implementar o padrão Factory no PHP

Veja como utilizar o padrão Factory em PHP para instanciar objetos sem expor a lógica de criação diretamente.

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étodo entregar().
  • Implementamos as classes Caminhao e Navio, que seguem essa interface.
  • A classe TransporteFactory contém o método estático criarTransporte(), que retorna uma instância do transporte desejado.
  • Dessa forma, podemos criar objetos dinamicamente sem precisar instanciá-los diretamente.

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

Compartilhe este tutorial: Como implementar o padrão Factory no PHP?

Compartilhe este tutorial

Continue aprendendo:

Como criar um singleton em PHP?

Veja como criar um singleton em PHP para controlar a criação de instâncias e garantir um único ponto de acesso.

Tutorial anterior

Como implementar o padrão Repository em PHP?

Veja como o padrão Repository ajuda a organizar a lógica de acesso a dados, melhorando a separação de responsabilidades no PHP.

Próximo tutorial