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.