Design Pattern - FACTORY
Monday, November 17, 2008 10:03:38 AM
Para criarmos um objeto no PHP utilizamos o seguinte comando: $pessoa = new Pessoa;
Porém nosso sistema fica extremamente inflexível, tendo só um tipo de objeto atuando no sistema.
Para darmos a flexibilidade de criação de objetos para o nosso sistema utilizamos o Factory.
Criando classes do sistema:
<?php
class Pessoa{
public $nome;
public $endereco;
public $telefone;
}
class Aluno extends Pessoa{
public $matricula;
public $_materias;
}
class Professor extends Pessoa{
public $matricula;
public $_disciplinas;
}
?>
Acima temos as classes que irão atuar no sistema, de um modo de desenvolvimento antigo, para cada necessidade iriamos instanciar as classes, porém criaremos uma classe para intermediar de um modo dinâmico a criação das nossas classes:
<?php
class factoryConstruct{
static function instanciar($tipo){
switch($tipo){
case 'pessoa':
return new Pessoa;
break;
case 'aluno':
return new Aluno;
break;
case 'professor':
return new Professor;
break;
}
}
}
?>
Com isso, qualquer classe que estiver no Switch/Case poderá ser instanciada de acordo com um parâmetro no método, assim evitando que sejam instanciadas de um modo inflexível, abrindo também ate espaço para o tratamento destes objetos instanciados com o SINGLETON, deixando seu sistema ainda mais flexível e bem desenvolvido:
<?php
$aluno = factoryConstruct::instanciar('aluno');
$professor = factoryConstruct::instanciar('professor');
$pessoa = factoryConstruct::instanciar('pessoa');
?>












messala # Monday, March 16, 2009 6:57:45 PM
Apenas brinco com PHP por enquanto, mas já havia reparado que o PHP5 abriu um leque ainda maior de coisas 'legais' (e confiáveis) que podemos fazer.
E vlw pela AULA sobre como usar o NuSOAP. =]
Bom trabalho!