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... 
     19"; 
     20 
     21  } 
     22 
     23} 
     24 
     251. Classe Fornecedor 
     26 
     27class Fornecedor 
     28 
     29{ 
     30 
     31  // método construtor 
     32 
     33  function Fornecedor() 
     34 
     35  { 
     36 
     37   echo "criando fornecedor... 
     38"; 
     39 
     40  } 
     41 
     42} 
     43 
     441. Classe Fábrica de Objetos 
     45 
     46Class Factory 
     47 
     48{ 
     49 
     50  // Método para criar objetos 
     51 
     52  // da classe Cliente 
     53 
     54  function CriarCliente($nome) 
     55 
     56  { 
     57 
     58   return new Cliente($nome); 
     59 
     60  } 
     61 
     62  // Método para criar objetos 
     63 
     64  // da classe Fornecedor 
     65 
     66  function CriarFornecedor($nome) 
     67 
     68  { 
     69 
     70   return new Fornecedor($nome); 
     71 
     72  } 
     73 
     74} 
     75 
     761. Cria objeto Factory 
     77 
     78$Fabrica = new Factory; 
     79 
     801. Cria instancias de objetos. 
     81 
     82$Joao = $Fabrica> 
     83 
     84CriarCliente('joao'); 
     85 
     86$Jose = $Fabrica> 
     87 
     88CriarFornecedor('jose'); 
     89 
     901. Exibe resultado 
     91 
     92var_dump($Joao); 
     93 
     94var_dump($Jose); 
     95 
     96?>  
     97 
     98}}}