domingo, 17 de abril de 2016

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 usarlo?
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.

No hay comentarios:

Publicar un comentario