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 libroBuilder
Patrón de diseño creacionalEste es un patrón bastante simple pero muy útil, el cual nos permite crear objetos complejos a través de uno más simple. Es muy común encontrarnos con situaciones en las cuales tenemos que crear objetos compuestos de forma manual y repetidas veces, lo que nos lleva a tener que establecer cada propiedad del objeto y si ésta además tiene objetos compuestos dentro, tenemos que crearlos primero para después ser asignados al objeto que estamos creando. Esto desde luego que se hace una tarea tediosa y cansada, sobre todo cuando tenemos que crear de manera frecuente los objetos.
Los componentes que conforman el patrón son los siguientes:
- IBuilder: Este componente no es obligatorio en todos los casos, sin embargo, es buena práctica especificar una interface común que tendrán todos los Builder que definiremos en nuestra aplicación, puede ser una interface que defina únicamente el método build.
- ObjectBuilder: Esta es la clase que utilizaremos para crear los TarjetObjet, esta clase debe de heredar de IBuilder e implementar el método build, el cual será utilizado para crear al TarjetObject. Como regla general todos los métodos de esta clase retornan a si mismo con la finalidad de agilizar la creación, esta clase por lo general es creada como una clase interna del TargetObject.
- TarjetObjet: Representa el objeto que deseamos crear mediante el ObjectBuilder, ésta puede ser una clase simple o puede ser una clase muy compleja que tenga dentro más objetos.
- OtherObjets: Representa los posibles objetos que deberán ser creados cuando el TarjetObject sea construido por el ObjectBuilder.
- El cliente crea una instancia del ObjectBuilder .
- El cliente ejecuta el paso 1 de la creación en el ObjectBuilder.
- Internamente el ObjectBuilder crea al TargetObject.
- El cliente ejecuta el paso 2 de la creación en el ObjectBuilder.
- Internamente el ObjectBuileder crea un OtherObjectA.
- El cliente ejecuta el paso 3 de la creación en el ObjectBuilder.
- Internamente el ObjectBuilder crear el OtherObjectB.
- El cliente solicita al ObjectBuilder la creación del TargetObject, éste toma todos los objetos creados anteriormente, los asocia al TargetObject y lo regresa.
Ejemplo del mundo real
Mediante la implementación del patrón de diseño Builder solucionaremos uno de los problemas más clásicos, que es la construcción de un objeto complejo mediante la ayuda de una clase Builder, la cual nos permitirá crear la estructura completa de un empleado con todas sus dependencias, como lo son, su dirección, teléfonos, contactos, etc.
¿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.