Patrón de diseño: Factory Method Karla Andrea Chávez Lozano
Introducción Uno de los patrones de diseño más utilizados en Java es el patrón Factory que es un patrón de diseño de creación y que sirve para construir una jerarquía de clases.
Definición Define una interfaz para crear un objeto, pero dejando en manos de las subclases la decisión de qué clase concreta instanciar Permite que una clase delegue en sus subclases la creación de objetos También conocido como virtual constructor
Se usa cuándo: Una clase no puede prever la clase de objetos que tiene que crear Una clase quiere que sus subclases decidan qué objetos crean Las clases delegan responsabilidades a una de entre varias subclases auxiliares, y queremos localizar en qué subclase concreta se ha delegado
Elementos Product (Documento): define la interfaz de los objetos que crea el método factoría ConcreteProduct (MiDocumento): implementa la interfaz de Product Creator (Aplicacion): Declara el método factoría que devuelve un objeto de tipo Product. Puede definir una implementación por defecto de dicho método, que devuelva un objeto de algún producto concreto ConcreteProduct. Puede llamar al método factoría para crear un objeto de tipo Product ConcreteCreator (MiAplicacion): sobrescribe el método factoría para devolver un objeto de algún ConcreteProduct
Estructura
Ejemplo gráfico Pago Tarjeta Paypal Transferencia
Ejemplo en código Tenemos una tienda online donde se le ofrece al usuario tres métodos de pagos distintos: tarjeta, paypal o transferencia bancaria. Product
Ejemplo en código ConcreteProduct
Ejemplo en código ConcreteProduct
Concrete Creator & Creator
Ejemplo en código
Diagrama después del patrón: Factoría Pago Pago Tarjeta Paypal Transferencia
Conclusión Esto permite una simplificación a la hora de trabajar clara. Es cierto que las Factorías se encargan de generar una jerarquía de clases pero su función fundamental es encapsular una jerarquía de objetos y reducir el conjunto de conceptos con los que trabajamos.
Referencias https://www.youtube.com/watch?v=8HKnsqxy3SE http://arantxa.ii.uam.es/~eguerra/docencia/0708/04%20Creacion.pdf https://www.youtube.com/watch?v=UvoHIDs3YmE https://www.arquitecturajava.com/usando-el-patron-factory/ http://jmperezramos.net/programacion/patron-factory-method-metodo-de-factorias/