Factory Method - mayueliza92/PatronesPHP GitHub Wiki
NIVEL DE APLICACIÓN: Clase DEFINICION: Define una interfaz para crear un objeto, pero deja que sea las subclases quienes decidan que clase instanciar. Permite que una clase delegue en sus subclases la creación de objetos. El objetivo del patrón Factory Method es proveer un método abstracto de creación de un objeto delegando en las subclases concretas su creación efectiva. DONDE UTILIZARLO:- Cuando una clase no pueda prever la clase de objetos que debe crear. -Cuando una clase quiere que sean sus subclases quienes especifiquen los objetos que ésta crea. -cuando las clases delegan la responsabilidad en una de entre varias clases auxiliares, y queremos localizar qué subclase de auxiliar concreta es en la que se delega BENEFICIOS: * Elimina la necesidad de instanciar de forma explícita los objetos que se van a utilizar.
- Es fácilmente extensible ya que la arquitectura queda abierta a desarrollos horizontales con nuevas clases que extiendan a la factoría y a la familia de productos. Respondiendo de esta manera al principio SOLID de Open/Close.
INCONVENIENTES.- Los clientes pueden tener que heredar de la clase Creador simplemente para crear un determinado objeto ProductoConcreto. La herencia está bien cuando el cliente tiene que heredar de todos modos de la clase Creador, pero si no es así estaría introduciendo una nueva vía de futuros cambios.
MODELADO:
CÓDIGO: Se crea la interfaz
Crea las clase concreta implementando la interfaz se creó
Cree una fábrica para generar un objeto de clase concreta basado en información dada.