BUILDER
Patrón
|
Builder
|
Descripción
|
El patrón Builder permite
crear un objeto complejo usando objetos simples y un enfoque de pasos.
Este tipo de patrón viene
bajo la gama de patrones creacionales y proporciona una de las mejores
maneras para crear un objeto.
Una clase Builder
construye el objeto final paso por paso. Es importante mencionar que el
Builder es independiente de otros objetos.
Su principal objetivo es
separar la construcción de un objeto complejo de su representación.
El resultado a nivel
computacional será más o menos el mismo, ya que el proceso de “ensamblado”
debe realizarse de todos modos. La diferencia radica en que la lógica del
programa no necesita saber cómo ensamblar el objeto, sino únicamente aquellas
piezas que quiere que éste disponga.
|
Cuando se tiene
instanciar objetos complejos que generalmente están compuestos por varios
elementos y que admiten diversas configuraciones.
|
-
Builder
o interfaz
abstracta para crear productos.
-
Concrete
Builder
o
implementación
del Builder
o construye y
reúne las partes necesarias para construir los productos
-
Director
o construye un
objeto usando el patrón Builder
-
Producto
o
El
objeto complejo bajo construcción
Cómo funciona el patrón Builder?
El director invoca los
servicios del Builder e interpreta su formato. El Builder crea parte del objeto
completo, cada vez que es llamado y mantiene todos los estados intermedios.
Cuando el producto es finalizado, el cliente obtiene el resultado del Builder.
Ofrece un control más fino
sobre el proceso de construcción. A diferencia de los demás patrones
creacionales, el patrón Builder construye el producto paso por paso bajo el
control del director.
a. S-ingle Responsibility Principle
I. ¿Qué
significa S-ingle Responsibility
Principle?
Dicta que todos las clases o módulos deben tener
responsabilidad sobre una sola parte de la funcionalidad dada por el software,
y esa responsabilidad debe estar totalmente encapsulada por la clase. Todos sus
servicios deben estar estrechamente alineados con esa responsabilidad.
II. ¿Puede no cumplirse? Si se cumple. Dado que la tarea del Builder es siempre crear un producto
basado en ciertas propiedades.
b. O-pen Close Principle
I. ¿Qué significa O-pen
Close Principle?
Los módulos deben estar abiertos para la extensión,
pero cerrados a la modificación, esto es, que una entidad debe permitir
modificar su comportamiento a través de la extensión, pero sin modificar su
código fuente.
II.
¿Puede no cumplirse?
Si se cumple, cuando se agregan nuevos Concrete
Builder no hay necesidad de modificar el Abstract Builder.
