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); ?> }}}