
ilustrar
1. O padrão de fábrica resolve como criar objetos de instância sem usar novos.
2. Existem algumas maneiras de criar metas diferentes das novas.
Se você quiser alterar o tipo de objeto criado, basta alterar a fábrica, e todo o código que utiliza esta fábrica será alterado automaticamente.
3. Geralmente usado com interfaces, o aplicativo não precisa conhecer os detalhes específicos dessas classes instanciadas.
É fácil de usar, desde que você saiba que a fábrica retorna uma classe que suporta uma determinada categoria de interface.
Exemplo
/**
* Abstrair a interface de uma pessoa * Interface Pessoa
*/
interface Pessoa
{
função pública showInfo();
}
/**
* Uma classe de estudante que herda da interface humana abstrata * Classe Aluno
*/
classe Aluno implementa Pessoa
{
função pública showInfo()
{
echo "Este é um estudanten";
}
}
/**
* Uma classe de professor que herda da interface humana abstrata * Classe Professor
*/
classe Professor implementa Pessoa
{
função pública showInfo()
{
echo "Este é um professorn";
}
}
/**
* Fábrica Humana * Classe PersonFactory
*/
classe PessoaFábrica
{
fábrica de função estática pública ($ person_type)
{
// Coloca em maiúscula a primeira letra do tipo passado em $class_name = ucfirst($person_type);
if(class_exists($class_name)){
retornar novo $class_name;
}outro{
throw new Exception("Classe: $class_name não existe",1);
}
}
}
// Precisa de um aluno $student = PersonFactory::factory('student');
echo $aluno->showInfo();
// Quando você precisa de um professor $teacher = PersonFactory::factory('teacher');
echo $professor->showInfo();O texto acima é uma introdução ao modo de fábrica do PHP. Espero que seja útil para todos.