Grasp
El GRASP de experto eninformación es el principio básico de asignación de responsabilidades. Nos indica, por ejemplo, que la responsabilidad de la creación de un objeto o la implementación de un método, debe recaer sobre la clase que conoce toda la información necesaria para crearlo. De este modo obtendremos un diseño con mayor cohesión y así la información se mantiene encapsulada (disminución del acoplamiento).
Problema
¿Cuáles el principio general para asignar responsabilidades a los objetos?
Solución
Asignar una responsabilidad al experto en información.
Beneficios
Se mantiene el encapsulamiento, los objetos utilizan su propia información para llevar a cabo sus tareas. Se distribuye el comportamiento entre las clases que contienen la información requerida. Son más fáciles de entender y mantener.
El patróncreador nos ayuda a identificar quién debe ser el responsable de la creación (o instanciación) de nuevos objetos o clases.
La nueva instancia deberá ser creada por la clase que:
Tiene la información necesaria para realizar la creación del objeto, o
Usa directamente las instancias creadas del objeto, o
Almacena o maneja varias instancias de la clase
Contiene o agrega la clase.
Una de lasconsecuencias de usar este patrón es la visibilidad entre la clase creada y la clase creador. Una ventaja es el bajo acoplamiento, lo cual supone facilidad de mantenimiento y reutilizacion La creación de instancias es una de las actividades más comunes en un sistema orientado a objetos. En consecuencia es útil contar con un principio general para la asignación de las responsabilidades de creación. Sise asignan bien el diseño puede soportar un bajo acoplamiento, mayor claridad, encapsulación y reutilización.
El patrón controlador es un patrón que sirve como intermediario entre una determinada interfaz y el algoritmo que la implementa, de tal forma que es la que recibe los datos del usuario y la que los envía a las distintas clases según el método llamado.
Este patrón sugiere que lalógica de negocios debe estar separada de la capa de presentación, esto para aumentar la reutilización de código y a la vez tener un mayor control.
Se recomienda dividir los eventos del sistema en el mayor número de controladores para poder aumentar la cohesión y disminuir el acoplamiento.
Alta cohesión y bajo acoplamiento
Los conceptos de cohesión y acoplamiento no están íntimamenterelacionados, sin embargo se recomienda tener un mayor grado de cohesión con un menor grado de acoplamiento. De esta forma se tiene menor dependencia y se especifican los propósitos de cada objeto en el sistema.
Alta cohesión
Nos dice que la información que almacena una clase debe de ser coherente y debe estar (en la medida de lo posible) relacionada con la clase.
Cohesión Coincidente: El módulorealiza múltiples tareas, sin ninguna relación entre ellas.
Cohesión Lógica: El módulo realiza múltiples tareas relacionadas, pero, en tiempo de ejecución, sólo una de ellas será llevada a cabo.
Cohesión Temporal: Las tareas llevadas a cabo por un módulo tienen, como única relación "que deben ser ejecutadas al mismo tiempo".
Cohesión de Procedimiento: La única relación que guardan las tareas deun módulo es que corresponden a una secuencia de pasos propia del “producto”.
Cohesión de Comunicación: Las tareas corresponden a una secuencia de pasos propia del “producto” y todas afectan a los mismos datos.
Cohesión de Información: Las tareas llevadas a cabo por un módulo tienen su propio punto de arranque, su codificación independiente y trabajan sobre los mismos datos. El ejemplo...
Regístrate para leer el documento completo.