Archivos de la categoría ‘Patrones Grasp’

En la tecnología de objetos un Patrón es una descripción de un problema y la solución, a la que se le da un nombre, y que se puede aplicar a nuevos contextos.

Los patrones GRASP describen los principios fundamentales de diseño de objetos para la asignación de responsabilidades. Constituyen un apoyo para la enseñanza que ayuda a entender el diseño de objeto esencial y aplica el razonamiento para el diseño de una forma sistemática, racional y explicable.

En cuanto a las responsabilidades UML define una responsabilidad como “un contrato u obligación de un clasificador”.

Las responsabilidades están relacionadas con las obligaciones de un objeto en cuanto a su comportamiento.

Básicamente, estas responsabilidades son de los siguientes dos tipos:

Conocer:

* Conocer los datos privados encapsulados.
*
Conocer los objetos relacionados.
* Conocer las cosas que puede derivar o calcular.

Hacer:

* Hacer algo él mismo, como crear un objeto o hacer un cálculo.
*
Iniciar una acción en otros objetos.
*
Controlar y coordinar actividades en otros objetos.

GRASP Se pueden destacar 5 patrones Principales que son:

Experto.
Creador.
Alta cohesión.
Bajo acoplamiento.
Controlador.

Y 4 patrones GRASP adicionales que son:

Fabricación Pura.
Polimorfismo.
Indirección.
No hables con extraños.

Nombre del patrón Problema Solución
Expert – Experto ¿Cuál es un principio general para asignar responsabilidades a los objetos? Asignar una responsabilidad al experto en información – la clase que tiene la información necesaria para la realización de la asignación.
Creator – Creador ¿Quién debería ser el responsable de la creación de una nueva instancia de alguna clase? Asignar a la clase B la responsabilidad de crear una instancia de clase A si se cumple uno o más de los casos siguientes:

  1. B agrega objetos de A
  2. B contiene objetos de A
  3. B registra instancias de objetos de A
  4. B utiliza más estrechamente objetos de A.
  5. B tiene datos de inicialización que se pasarán a un objeto de A cuando sea creado (por tanto, B es un Experto con respecto ala creación de A).
  6. B es un creador de los objetos A.

Low Coupling – Bajo Acoplamiento ¿Cómo soportar bajas dependencias, bajo impacto del cambio e incremento de la reutilización? Asignar una responsabilidad de manera que el acoplamiento permanezca bajo.
High Cohesion – Alta cohesión ¿Cómo mantener la complejidad manejable? Asignar una responsabilidad de manera que la cohesión permanezca alta.
Controller – Controlador ¿Quién debería ser el responsable de gestionar un evento de entrada al sistema? Asignar una responsabilidad de recibir o manejar un mensaje de evento del sistema a una clase que representa una de las opciones siguientes:

  1. Representa el sistema global, dispositivo o subsistema.
  2. Representa un caso de uso en el que tiene lugar el evento del sistema a menudo denominado <nombre del caso de uso> Manejador, <nombre del caso de uso> coordinador, <nombre del caso de uso> Sesión.

Utilice la misma clase controlador para todos los eventos del sistema en el mismo escenario de caso de uso.

Informalmente, una sesión es una instancia de una conversación con un actor. Las sesiones pueden tener cualquier duración, pero se organizan a menudo en función de casos de uso (sesiones de cas

Anuncios