ilustrar
1. El patrón de fábrica resuelve cómo crear objetos de instancia sin usar nuevos.
2. Hay algunas formas de crear objetivos distintos de los nuevos.
Si desea cambiar el tipo de objeto creado, solo necesita cambiar la fábrica, y todo el código que use esta fábrica cambiará automáticamente.
3. Generalmente utilizada con interfaces, la aplicación no necesita conocer los detalles específicos de estas clases instanciadas.
Es fácil de usar siempre que sepa que la fábrica devuelve una clase que admite una determinada categoría de interfaz.
Ejemplo
/** * Resumen de la interfaz de una persona * Interfaz de persona */ interfaz persona { función pública mostrarInfo(); } /** * Una clase de estudiante que hereda de la interfaz humana abstracta * Clase Estudiante */ clase Estudiante implementa Persona { función pública mostrarInfo() { echo "Este es un estudianten"; } } /** * Una clase de profesor que hereda de la interfaz humana abstracta * Profesor de clase */ clase Maestro implementa Persona { función pública mostrarInfo() { echo "Este es un profesorn"; } } /** * Fábrica Humana * Clase PersonaFábrica */ clase PersonaFábrica { fábrica de funciones estáticas públicas ($ person_type) { // Ponga en mayúscula la primera letra del tipo pasado $class_name = ucfirst($person_type); si(clase_existe($nombre_clase)){ devolver nuevo $nombre_clase; }demás{ lanzar nueva excepción ("Clase: $ nombre_clase no existe", 1); } } } // Necesita un estudiante $estudiante = PersonFactory::factory('estudiante'); echo $estudiante->showInfo(); // Cuando necesitas un profesor $teacher = PersonFactory::factory('teacher'); echo $profesor->showInfo();
Lo anterior es una introducción al modo de fábrica de PHP. Espero que sea útil para todos.