Grasp
De Wikipedia, la enciclopedia libre
En Diseño Orientado a Objetos, GRASP son Patrones Generales de Software para Asignación de Responsabilidades, es el acrónimo de "General Responsibility Assignment Software Patterns" . Aunque se considera que más que patrones propiamente dicho, son una serie de "Buenas Prácticas" de aplicación recomendable en el diseño de software.
Tabla de contenidos |
[editar] Experto en información
El GRASP de Experto en información es el principio basico de asignación de responsabilidades. Nos indica que la responsabilidad de la creación de un objeto debe recaer sobre la clase que conoce toda la información necesaria para crearlo.
[editar] Creador
El patrón creador nos ayuda a identificar quien debe ser el responsable de la creación (o instanciación) de nuevos objetos o clases. La nueva instacia deberá ser creada por la clase que:
- Tiene la información necesaria para realizar la creación del objeto, o
- Usa directamente las instacias creadas del objeto, o
- Almacena o maneja varias instacias de la clase
[editar] Controlador
[editar] Alta cohesión y bajo acoplamiento
Los podemos separar, aunque están íntimamente ligados, de hecho si nos esforzamos en aumentar mucho la cohesión de nuestro sistema software, tendríamos un alto acoplamiento entre las clases, y por el contrario si reducimos mucho el acoplamiento, se vera mermada la cohesión:
[editar] Alta cohesión
Nos dice que la información que almacena una clase debe de ser coherente y esta en la mayor medida de lo posible relacionada con la clase
[editar] Bajo acoplamiento
Es la idea de tener las clases lo menos ligadas entre si que se pueda. De tal forma que en caso de producirse una modificación en alguna de ellas, se tenga la minima repercusión posible en el resto de clases, potenciando la reutilización, y disminuyendo la dependencia entre las clases
[editar] Polimorfismo
[editar] Fabricación Pura
La fabricación pura se da en las clases que no representan un ente o objeto real del dominio del problema, si no que se ha creado intencionadamente para disminuir el acoplamiento, aumentar la cohesion y/o potenciar la reutilización del código. Es decir que es una clase "inventada" o que no existe en el problema como tal, pero que añadiéndola se logra mejorar estructuralmente el sistema.
[editar] Indirección
El patrón de indirección nos aporta mejorar el bajo acoplamiento entre dos clases asignando la responsabilidad de la mediación entre ellos a un tercer elemento (clase) intermedio
[editar] Variaciones Protegidas
Es el principio fundamental de protegerse del cambio, de tal forma que todo lo que preeveamos en un analisis previo que es susceptible de modificaciones, quede lo menos ligado posible a nuestro sistema, de forma que cuando se produzca la variación, nos repercuta lo minimo.