GRASP
Hoy quiero compartir con ustedes los patrones GRASP ya que
para alguno de nosotros hace algún tiempo lo vimos en el pregrado y que por
extrañas razones lo hemos olvidado, esta será una definición general para tener
en cuenta en el desarrollo de nuestra especialización y especialmente en la
catedra Modelado y Gestion de la Información.
Definicion:
General Responsibility Assignment Software Patterns
(Patrones Generales de Software para Asignación de Responsabilidades).
Más que patrones
generales de software se puede resumir que es una serie de buenas prácticas
para el diseño de software.
Existen dos tipos de responsabilidades:
Conocer.
Conocer la información privada del objeto, conocer acerca de
los objetos relacionados, conocer acerca de lo que se puede calcular o derivar
Hacer.
Realizar algo él mismo, ejecutar un cálculo, crear un
objeto, iniciar acciones en otros objetos, controlar o coordinar actividades en
otros objetos
Patrones:
Patrón Experto.
Problema:
Cuál es el principio fundamental en virtud del
cual se asignan las responsabilidades en el diseño orientado a objetos?
Solución:
Asignar la responsabilidad al experto en la
información, la clase que tiene la información necesaria para satisfacer la
responsabilidad.
· Conoce y puede informar el valor de sus atributos.
· Puede modificar el valor de sus atributos
Patrón Creador.
Problema: Quién es el responsable de crear una nueva instancia
de una clase?
Solución: El objeto B tiene la responsabilidad de crear
objetos de la Clase A si:
·
B agrega objetos A
·
B contiene objetos A
·
B registra objetos A
·
B usa exhaustivamente objetos A
·
B posee la información necesaria para inicializar
a A
Patrón Bajo
Acoplamiento
Acoplamiento es la medida de cuanto una clase está conectada
(tiene conocimiento) a otras clases
Problema:
Cómo podemos soportar baja dependencia a través de
las clases, bajo impacto de cambios, e incremento en la reutilización de
clases?
Solución:
asignar responsabilidades para que el acoplamiento
permanezca bajo
Patrón Alta Cohesión.
Cohesión funcional dentro de una clase es una medida que
indica cuan relacionadas están las responsabilidades de una clase
Problema:
Cómo se puede guardar la complejidad manejable?
Solución:
Asigne responsabilidades para que la cohesión
permanezca alta
- · Es un patrón evaluativo: entre más alta cohesión más fácil de entender, de cambiar, de reutilizar
- · No puede ser considerado aisladamente
Patrón Controlador
- · Un evento de entrada al sistema es algún evento desde algún actor externo (humano ó no)
- · El objeto controlador es responsable de decidir que hacer con el evento
- · El controlador se aplica para el manejo de interfaces externas y al manejo de entradas desde interfaces de usuario
- ·
Los controladores de interface de usuario
generalmente tienen la forma:
Coordinador, Manejador, Session.
Referencias:
Larman C., “UML y Patrones”, Prentice Hall, Segunda Edición,
2003
Departamento de Ingeniería de Sistemas y Computación,
Universidad de los Andes, https://sistemasacademico.uniandes.edu.co/~isis2603/dokuwiki/lib/exe/fetch.php?media=principal:1._grasp-parte1y2.pdf
No hay comentarios:
Publicar un comentario