PATRONES GRAPS Experto en información (Experto) Es asignar

Anuncio
PATRONES GRAPS
Experto en información (Experto)
Es asignar responsabilidades a las clases dependiendo de la información que estas
posean.
“Quien es el responsable”
Beneficios:
Conservación del encapsulamiento
Bajo acoplamiento
Alta cohesión
Creador
Una clase B es creadora cuando se le asigna la responsabilidad de crear una instancia de
la clase A si se cumple por lo menos una de las siguientes condiciones:
•
•
•
•
•
B agrega objetos de A.
B contiene objetos de A.
B registra instancias de objetos de A.
B utiliza más estrechamente objetos de A.
B tiene los datos de inicialización que se pasaran de un objeto A cuando sea
creado. Por lo tanto B es un experto en la creación de A.
Beneficio
Bajo acoplamiento
Si observamos el ejemplo, identificamos fácilmente que la universidad es la encargada
de crear las matriculas y que esta lo hace ya que cumple los requisitos necesarios
nombrados anteriormente, es por eso que la clase UNIVERSIDAD es EXPERTA crear
MATRICULAS.
Bajo acoplamiento
Es asignar una responsabilidad de manera que el acoplamiento permanezca bajo.
El Acoplamiento es la medida de fuerza con que un elemento esta conectado a, tiene
conocimiento de, confía en, otros elementos.
Una clase tiene bajo acoplamiento si esta no depende de demasiados otros elementos.
Beneficio
No se afectan por cambio en otros componentes
Fáciles de entender por separado
Fáciles de reutilización
Un posible diagrama de clases para el ejemplo usado anteriormente seria el siguiente…
Pero si nos guiamos en el patrón de bajo acoplamiento vemos que la clase
UNIVERSIDAD tiene demasiadas conexiones, otra posibilidad de modelar el problema
seria…
Alta cohesión
Una clase tiene alta cohesión cuando las relaciones de esta estén muy relacionadas y no
tengan mucho trabajo.
Asignar responsabilidades de manera que la cohesión permanezca alta. Mantener la
complejidad manejable.
Beneficios
Mejoran la claridad del diseño
Simplificación del cambio
Genera bajo acoplamiento
Facilita la reutilización
Controlador
Una clase es controladora cuando se le asigna la responsabilidad de recibir o manejar un
mensaje de evento del sistema a una clase que representa una de las siguientes opciones:
•
•
Representa el sistema global, dispositivo o subsistema (Controlador de fachada )
Representa un escenario de casos de uso en el que tiene lugar un evento de
sistema
Un controlador es el responsable de gestionar un evento de entrada.
Delega el trabajo a otros objetos no hacen nada por si mismos
Beneficio
Mayor potencial de los componentes reutilizables
Fachada
Es un caso especial de un controlador, oculta el sistema bajo una clase, pueden existir
varias.
Beneficio
Permite tener bajo acoplamiento entre subsistemas.
La clase universidad, es fácilmente identificada como la clase mas saturada lo que
contradice el patrón de Alta Cohesión, según este, las clases deberían tener
responsabilidades muy relacionadas y que al mismo tiempo, no se “esfuercen” mucho
para hacer funcionar el sistema.
A diferencia del anterior diagrama, podemos ver que universidad funciona como una
controladora del sistema, y como una fachada entre toda la burocracia interna de la
universidad y el estudiante, este diagrama además, muestra que la clase
UNIVERSIDAD posee alta cohesión, puesto que ya no trabaja para las demás clases
creando instancias y asignándolas, sino que solo acciona los métodos necesarios para
que las otras clases realicen sus responsabilidades, estas a su vez no solo se enfocan en
sus muy relacionadas y limitadas responsabilidades.
Descargar