Universidad de Cartagena
Facultad De Ingeniera
Programa de Ingeniera de Sistemas
Patrones de Diseo
GRASP :
FABRICACION PURA
INTEGRANTES:
PAULA PACHECO
SAMUEL PORTACIO
Fabricacin Pura
Cuando los problemas se complican, se debe
construir clases que se encarguen de construir
los objetos adecuados en cada momento
(factoras).
Ejemplos:
Clases de acceso a gestor a bases de datos.
Sistemas multi-lenguaje.
Etc
Fabrica pura
La fabricacin pura es un patrn que se usa
intencionadamente para disminuir el acoplamiento,
aumentar la cohesin y potenciar la reutilizacin del
cdigo. Es la solucin cuando el diseador se encuentre
con una clase poco cohesiva y no tenga otra clase en la
que implementar algunos mtodos
Ventajas de la Fabricacin Pura
Las principales ventajas son que se logra una mayor
cohesin, ya que tenemos una clase dedicada a una
responsabilidad en particular y se baja el
acoplamiento, como tambin se logra aumentar la
reutilizacin de cdigo.
Desventajas de la Fabricacin Pura
El abuso de este principio puede derivar en tener
muchas pequeas clases con un solo mtodo, como
si fueran funciones.
Problema
Cmo proceder cuando las soluciones encontradas
comprometen la cohesin y el acoplamiento? Es decir,
Qu objetos deberan tener la responsabilidad cuando no
se quiere violar los objetivos de los patrones de alta
cohesin y bajo acoplamiento, u otros, cuando las
soluciones que ofrece el experto, por ejemplo, no son
adecuadas?
Solucin
Asignar un conjunto de responsabilidades altamente
cohesivas a una clase artificial o de conveniencia que no
represente ningn concepto del dominio del problema Tal
clase es una fabricacin de la imaginacin e idealmente
debera ser pura (diseada exclusivamente para dicho fin)
Beneficios
Se soporta alta cohesin 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 podra aumentar debido a la
presencia de clases fabricacin pura de grano fino cuyas
responsabilidades tienen aplicacin en otras aplicaciones.
Contraindicaciones
Puede perderse el espritu de los buenos diseos
orientados a objetos que se centran en los posibles objetos
y no en las funciones
Si se abusa de ello, la creacin de clases de fabricacin
pura, originar un diseo centrado en
funciones y
posiblemente puede derivar en clases funcin o
algoritmo, que slo tienen un mtodo.
Patrones y principios relacionados
Bajo acoplamiento
Alta cohesin.
Usualmente una fabricacin pura asume
responsabilidades de las clases del dominio a las que se
les asignara esas responsabilidades en base al patrn
experto.
Todos los patrones de diseo GoF son fabricaciones
puras, ejemplo: adaptador, estrategia, command entre
otros.
Prcticamente el resto de patrones de diseo son
fabricaciones puras.
Ejemplo de utilizacin
Qu hacemos entonces cuando tenemos una
responsabilidad que est violando los principios de la
Alta cohesin 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
debera de guardar la o las responsabilidades en cuestin.
De esta manera, se est creando una clase diseada 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
Fabricacin Pura debera de cumplir con la Alta cohesin y el Bajo
acoplamiento.
Entonces se dice que cualquier entidad que no pertenezca al
dominio de negocio es una fabricacin pura (helpers, traductores,
hasta los patrones de diseo, etc.).
Para que esto quede ms claro, voy a mostrar un ejemplo.
Ejemplo Codigo
GRACIAS POR SU ATENCION