Principios GRASP: Fundamentos para el Diseño de Software Orientado a Objetos
Enviado por federzzz y clasificado en Informática y Telecomunicaciones
Escrito el en
con un tamaño de 3,08 KB
Definición de Responsabilidades y Patrones
Una responsabilidad es “un contrato u obligación de un clasificador”. Estas están intrínsecamente relacionadas con las obligaciones de un objeto en cuanto a su comportamiento y pueden clasificarse en dos tipos: Hacer y Conocer.
Un patrón es una descripción de un problema y su solución, a la cual se le asigna un nombre y puede aplicarse a nuevos contextos. Los Patrones GRASP describen los principios fundamentales del diseño de objetos y la asignación de responsabilidades, expresados como patrones.
1. Experto en Información
Asignar una responsabilidad al experto en información: la clase que posee los datos necesarios para realizar dicha responsabilidad. Expresa la “intuición” común de que los objetos realizan tareas relacionadas con la información que poseen.
- Ejemplo: Se aplica el patrón experto debido a que la clase
ElementoDepósitoes quien tiene la información necesaria (atributo estado actual) para realizar la tarea (actualizar estado). - GestorDeposito (control) → cambiarEstado → ElemDep.
2. Creador
El patrón Creador indica que una clase es idónea para asumir la responsabilidad de crear la clase contenida o registrada. La intención básica es encontrar un creador que necesite conectarse al objeto creado en alguna situación.
- Ejemplo: Se aplica el patrón creador estableciendo como creadora la clase
GestorDeposito, ya que es la que tiene la información necesaria (previamente solicitada al usuario) para crear el depósito. - GestorDep (interconrulo(crearDep)) → nuevo → Depo.
3. Bajo Acoplamiento
Diseñar con el objetivo de mantener las clases lo menos ligadas entre sí. De tal forma que, en caso de producirse una modificación en alguna de ellas, se tenga la mínima repercusión posible en el resto del sistema.
- Ejemplo: Esta asignación de responsabilidades acopla la clase
GestorDepósitocon el conocimiento del cliente, la claseClientecon la claseDepósitoy, por último, la claseDepósitoconoce a la claseElemento, manteniendo el acoplamiento global en un nivel bajo.
4. Alta Cohesión
Asignar responsabilidades de manera que la información que almacena una clase sea coherente y esté estrechamente relacionada con su propósito.
- Ejemplo: La creación de la clase
Cliente.
5. Controlador
Es un objeto que no pertenece a la interfaz de usuario, responsable de recibir o manejar un nuevo evento del sistema. Un controlador define el método para la operación del sistema.
- Ejemplo:
mostrarClienteParaSeleccion()aIUSolicitudDepositoy deGestorDeposito,getNombre()aCliente.