wiki:WF/Factory

Version 1 (modified by trac, 17 years ago) (diff)

--

Outro conceito importante da orientação a objetos é o Design Pattern Factory, também conhecido como Fábrica de Objetos. Uma classe que centraliza a criação dos objetos, o que facilita e padroniza a manutenção do código. Sempre que mudar a política de criação de objetos, basta alterar em somente uma classe. Para tal, criamos uma classe central, responsável pela criação dos objetos, como no exemplo abaixo. Neste exemplo, todas classes estão juntas, mas é recomendado sempre colocar cada classe em um arquivo separadamente, o que torna o sistema mais claro, modular e fácil de ser gerenciado.

1. Classe Cliente

Class Cliente

{

  // método construtor

  function Cliente()

  {

   echo "criando cliente...\n";

  }

}

1. Classe Fornecedor

class Fornecedor

{

  // método construtor

  function Fornecedor()

  {

   echo "criando fornecedor...\n";

  }

}

1. Classe Fábrica de Objetos

Class Factory

{

  // Método para criar objetos

  // da classe Cliente

  function CriarCliente($nome)

  {

   return new Cliente($nome);

  }

  // Método para criar objetos

  // da classe Fornecedor

  function CriarFornecedor($nome)

  {

   return new Fornecedor($nome);

  }

}

1. Cria objeto Factory

$Fabrica = new Factory;

1. Cria instancias de objetos.

$Joao = $Fabrica>

CriarCliente('joao');

$Jose = $Fabrica>

CriarFornecedor('jose');

1. Exibe resultado

var_dump($Joao);

var_dump($Jose);

?>