¿Que es el patrón Builder (constructor)
Este patrón de diseño separa la creación de un objeto de su representación, de modo que el mismo proceso de construcción puede crear diferentes representaciones. Este tipo de separación reduce el tamaño del objeto. El diseño resulta ser más modular con cada implementación contenida en un diferente objeto construido. Agregar una nueva implementación resulta fácil. El proceso de construcción de objetos es independiente de los componentes que componen el objeto. Esto permite más control sobre el proceso de construcción.
En términos de implementación, cada uno de los diferentes pasos del proceso de construcción puede ser declarado por métodos de una interfaz en común y puede ser implementada por diferentes builders concretos.
Un objeto cliente puede crear una instancia de un constructor concreto e invocar el conjunto de métodos requeridos para construir diferentes partes de un objeto final. Esté enfoqué cada objeto del cliente sea consiente de la lógica de construcción. Siempre que la lógica de construcción sufre un cambio, todos los objetos deben modificarse en consecuencia.
El patrón builder introduce otro nivel de separación para abordar este problema. En lugar de tener objetos cliente invocado diferentes métodos builder directamente, El patrón builder sugiere usar un objeto dedicado para se un Director, el cual es el responsable de invocar diferentes métodos builder requeridos para la construcción de un objeto final.Diferentes objetos cliente pueden hacer uso del objeto Director para crear el objeto requerido. Una vez que el objeto esta construido, el objeto cliente puede solicitar al constructor el objeto construido completamente. Para facilitar el proceso se declara un método getObject que puede ser declarado en la interfaz Builder para ser implementado por diferentes clases concretas.
Builder
Especificación de una interfaz abstracta para crear partes de un objeto.
ConcreteBuilder
- Es para construir y ensamblar partes de un objeto para implementación de la interfaz Builder.
- Provee una interfaz para recuperar el objeto.
Director
- Construye un objeto utilizando la interfaz Builder.
Product
- Representa un objeto complejo a construir.
- Incluye clases que son parte del objeto, incluye interfaces para ensamblar las partes el resultado final.
Aquí puedes encontrar un ejemplo con la implementación.
Cuando se usa el patrón Builder
- Cuando el algoritmo de creación de un objeto complejo debe ser independiente del mismo objeto.
- Cuando se requiere construir diferentes representaciones de un mismo objeto.
Deja un comentario