Fabrica Pura (1)

12
Patrones de Diseño GRASP : FABRICACION PURA INTEGRANTES: PAULA PACHECO SAMUEL PORTACIO Universidad de Cartagena Facultad De Ingeniería Programa de Ingeniería de Sistemas

description

fabricacion pura

Transcript of Fabrica Pura (1)

Page 1: Fabrica Pura (1)

Patrones de Diseño GRASP :

FABRICACION PURAINTEGRANTES:

PAULA PACHECO

SAMUEL PORTACIO

Universidad de CartagenaFacultad De IngenieríaPrograma de Ingeniería de Sistemas

Page 2: Fabrica Pura (1)

Fabricación Pura

Cuando los problemas se complican, se debe construir clases que se encarguen de construir los objetos adecuados en cada momento (factorías).

Ejemplos: Clases de acceso a gestor a bases de datos.

Sistemas multi-lenguaje.

Etc…

Page 3: Fabrica Pura (1)

Fabrica pura

La fabricación pura es un patrón que se usa intencionadamente para disminuir el acoplamiento, aumentar la cohesión y potenciar la reutilización del código. Es la solución cuando el diseñador se encuentre con una clase poco cohesiva y no tenga otra clase en la que implementar algunos métodos

Page 4: Fabrica Pura (1)

Ventajas de la Fabricación Pura

Las principales ventajas son que se logra una mayor cohesión, ya que tenemos una clase dedicada a una responsabilidad en particular y se baja el acoplamiento, como también se logra aumentar la reutilización de código.

Desventajas de la Fabricación Pura

El abuso de este principio puede derivar en tener muchas pequeñas clases con un solo método, como si fueran funciones.

Page 5: Fabrica Pura (1)

Problema

¿Cómo proceder cuando las soluciones encontradas comprometen la cohesión y el acoplamiento? Es decir, ¿Qué objetos deberían tener la responsabilidad cuando no se quiere violar los objetivos de los patrones de alta cohesión y bajo acoplamiento, u otros, cuando las soluciones que ofrece el experto, por ejemplo, no son adecuadas?

Page 6: Fabrica Pura (1)

Solución

Asignar un conjunto de responsabilidades altamente cohesivas a una clase artificial o de conveniencia que no represente ningún concepto del dominio del problema – Tal clase es una fabricación de la imaginación e idealmente debería ser pura (diseñada exclusivamente para dicho fin)

Page 7: Fabrica Pura (1)

Beneficios

Se soporta alta cohesión puesto que las responsabilidades se factorizan en una clase de grano fino que solo se centra en un conjunto muy especifico de tareas relacionadas.

El potencial para reutilizar podría aumentar debido a la presencia de clases fabricación pura de grano fino cuyas responsabilidades tienen aplicación en otras aplicaciones.

Page 8: Fabrica Pura (1)

Contraindicaciones

Puede perderse el espíritu de los buenos diseños orientados a objetos que se centran en los posibles objetos y no en las funciones

Si se abusa de ello, la creación de clases de fabricación pura, originará un diseño centrado en funciones y posiblemente puede derivar en clases “función” o “algoritmo”, que sólo tienen un método.

Page 9: Fabrica Pura (1)

Patrones y principios relacionados

• Bajo acoplamiento

• Alta cohesión.

• Usualmente una fabricación pura asume responsabilidades de las clases del dominio a las que se les asignaría esas responsabilidades en base al patrón experto.

• Todos los patrones de diseño GoF son fabricaciones puras, ejemplo: adaptador, estrategia, command entre otros.

• Prácticamente el resto de patrones de diseño son fabricaciones puras.

Page 10: Fabrica Pura (1)

Ejemplo de utilización ¿Qué hacemos entonces cuando tenemos una

responsabilidad que está violando los principios de la Alta cohesión y el Bajo acoplamiento?

En ese caso, se suele crear una clase “artificial”, es decir, una clase que no pertenece al dominio del negocio. En la misma se debería de guardar la o las responsabilidades en cuestión.De esta manera, se está creando una clase diseñada únicamente para dicho fin.La idea principal de esta clase es que tiene que ser altamente cohesiva, y a su vez, al crear la funcionalidad en otra clase, va a reducir el acoplamiento. De ahí viene lo que se dice que la Fabricación Pura debería de cumplir con la Alta cohesión y el Bajo acoplamiento.Entonces se dice que cualquier entidad que no pertenezca al dominio de negocio es una fabricación pura (helpers, traductores, hasta los patrones de diseño, etc.).Para que esto quede más claro, voy a mostrar un ejemplo.

Page 11: Fabrica Pura (1)

Ejemplo Codigo

Page 12: Fabrica Pura (1)

GRACIAS POR SU ATENCION