Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:
Ver libroFactory Method
Patrón de diseño creacionalFactory Method permite la creación de objetos de un subtipo determinado a través de una clase Factory. Esto es especialmente útil cuando no sabemos, en tiempo de diseño, el subtipo que vamos a utilizar o cuando queremos delegar la lógica de creación de los objetos a una clase Factory. Utilizando este patrón podemos crear instancias dinámicamente mediante la configuración, estableciendo cual será la implementación a utilizar en un archivo de texto, XML, properties o mediante cualquier otra estrategia.
Los componentes que conforman el patrón son los siguientes:
- IProduct: Representa de forma abstracta el objeto que queremos crear, mediante esta interface se definen la estructura que tendrá el objeto creado.
- ConcreteProduct: Representa una implementación concreta de la interface IProduct, la cual es creada a través del ConcreteFactory.
- AbstractFactory: Este componente puede ser opcional, sin embargo, se recomienda la creación de un AbstractFactory que define el comportamiento por default de los ConcreteFactory.
- Concrete Factory: Representa una fábrica concreta la cual es utilizada para la creación de los ConcreteProduct, esta clase hereda el comportamiento básico del AbstractFactory.
- El cliente le solicita al ConcreteFactory la creación del ProductA .
- El ConcreteFactory localiza la implementación concreta de ProductA y crea una nueva instancia.
- El ConcreteFactory regresa el ConcreteProductA creado.
- El cliente le solicita al ConcreteFactory la creación del ProductB.
- El ConcreteFactory localiza la implementación concreta del ProductB y crea una nueva instancia.
- El ConcreteFactory regresa el ConcreteProductB creado.
Ejemplo del mundo real
Mediante la implementación del patrón de diseño Factory Method crearemos una aplicación que sea capaz de conectarse a más de una base de datos, intercambiando de una a la otra, con tan solo realizar una simple configuración y sin una sola línea de código adicional.
¿Sabes la importancia de los patrones de diseño?
Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.