Changes between Initial Version and Version 1 of WF/Factory


Ignore:
Timestamp:
07/24/07 15:01:37 (17 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/Factory

    v1 v1  
     1Outro 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. 
     2  
     3 
     4{{{ 
     5 
     61. Classe Cliente 
     7 
     8Class Cliente 
     9 
     10{ 
     11 
     12  // método construtor 
     13 
     14  function Cliente() 
     15 
     16  { 
     17 
     18   echo "criando cliente...\n"; 
     19 
     20  } 
     21 
     22} 
     23 
     241. Classe Fornecedor 
     25 
     26class Fornecedor 
     27 
     28{ 
     29 
     30  // método construtor 
     31 
     32  function Fornecedor() 
     33 
     34  { 
     35 
     36   echo "criando fornecedor...\n"; 
     37 
     38  } 
     39 
     40} 
     41 
     421. Classe Fábrica de Objetos 
     43 
     44Class Factory 
     45 
     46{ 
     47 
     48  // Método para criar objetos 
     49 
     50  // da classe Cliente 
     51 
     52  function CriarCliente($nome) 
     53 
     54  { 
     55 
     56   return new Cliente($nome); 
     57 
     58  } 
     59 
     60  // Método para criar objetos 
     61 
     62  // da classe Fornecedor 
     63 
     64  function CriarFornecedor($nome) 
     65 
     66  { 
     67 
     68   return new Fornecedor($nome); 
     69 
     70  } 
     71 
     72} 
     73 
     741. Cria objeto Factory 
     75 
     76$Fabrica = new Factory; 
     77 
     781. Cria instancias de objetos. 
     79 
     80$Joao = $Fabrica> 
     81 
     82CriarCliente('joao'); 
     83 
     84$Jose = $Fabrica> 
     85 
     86CriarFornecedor('jose'); 
     87 
     881. Exibe resultado 
     89 
     90var_dump($Joao); 
     91 
     92var_dump($Jose); 
     93 
     94?>  
     95 
     96}}}