Anda di halaman 1dari 4

Nombre: Kevin Tituana

Curso: 6 A Sistemas
Materia: Sistemas de Inforamcin
PATRONES GRASP (General Responsibility Assignment Software
Patterns)
Los patrones de diseo son el esqueleto de las soluciones a problemas comunes en
el desarrollo de software.

Estos patrones constituyen un apoyo para la enseanza que ayuda a


entender el diseo de objetos, un patrn es una descripcin de un problema
y la solucin a la que se le da un nombre, y que adems se puede aplicar a
nuevos contextos, los patrones Grasp se dividen en 6 ellos son: experto,
creador, controlador, fachada, alta cohesin y bajo acoplamiento. [1]
Es decir, brindan una solucin que ha sido documentada y probada a
problemas de desarrollo de software de tal manera que podamos normalizar
quin hace que, en qu momento y cmo debe realizarse esta cosa, de esa
forma aprovechar el conocimiento y la experiencia existente y no partir de
cero.
A continuacin vamos a describir los 6 patrones descritos por Grasp:
a) Experto.
Responde a la pregunta:
Cul es el principio ms bsico para aadir responsabilidades en una
clase?
Solucin:
Asignar responsabilidades al experto de la informacin, es decir, a la
clase que tiene la
Informacin necesaria para llevar la tarea a cabo.
Ejemplo:

[2]
b) Creador.
Responde a la pregunta:
Quin debe ser responsable en la creacin de una nueva instancia
de una clase? Solucin:

Una clase B tiene la responsabilidad para crear una instancia de la


clase A si:
B agrega objetos de A.
B contiene objetos de A.
B almacena objetos de A.
B usa objetos de A.
B tiene los datos necesarios para inicializar a A cuando este es
creado.
Ejemplo:
En la aplicacin PDV, quin debera crear una LineaDeVenta? Venta
de hecho contiene (agrega) muchos objetos de LineaDeVenta, debe
tener, por lo tanto, la responsabilidad de la creacin de instancias de
esta clase y por lo tanto contener un mtodo crearLineaDeVenta. [2]
c) Alta Cohesin.
Responde a la pregunta:
Cmo lograr que la complejidad sea lo ms manejable posible? Alta
cohesin: lo relacionadas que estn las responsabilidades de una
clase, o una clase con responsabilidades altamente relacionadas y
que no lleva a cabo gran cantidad de trabajo.
Solucin:
Asignar responsabilidades procurando que la cohesin sea lo ms alta
posible.
Ejemplo:

[2]
d) Bajo Acoplamiento.
Responde a la pregunta:
Cmo soportar baja dependencia e incrementar la reutilizacin?
Acoplamiento indica que tan fuertemente est conectada una clase
con otra, tiene conocimiento de, o influye sobre otra clase, una clase
con bajo acoplamiento no depende de otras clases.
Solucin:
Asignar responsabilidades de tal manera que el acoplamiento sea el
menor posible.
Ejemplo:

[2]

e) Controlador.
Responde a la pregunta:
Quin debe manejar eventos del sistema? Un controlador es un
objeto responsable del manejo de los eventos del sistema, que no
pertenece a la interfaz del usuario, el controlador recibe la solicitud
del servicio desde la capa GUI y coordina su realizacin delegando a
otros objetos.
Solucin: Responsabilidades para el manejo de mensajes de eventos
del sistema a una clase que:
Representa al conjunto del sistema o negocio (Controlador
Fachada).
Representa algo del mundo real que est activo (Controlador de
Roles).
Representa un administrador artificioso para todos los eventos del
sistema (Controlador Caso de Uso).
Ejemplo:
En el PDV hay varias operaciones del sistema como finalizarVenta(),
introducirArticulo() o introducirArticuloDevuelto().
Siguiendo el patrn Controlador podramos asignar la responsabilidad
de manejar estos eventos a una clase que represente al sistema
como Registro (Controlador Fachada).
O si hay muchos eventos de sistema, tambin podramos asignrsela
a controladores de los distintos casos de uso como:
ProcesarVentaControlador o GestionarDevolucionesControlador.
Si el Registro asume demasiadas responsabilidades pierde la cohesin
(el compromiso). [2]

Conclusiones:
Lo que el tema trata de decir es que no debemos reinventar el agua tibia,
por as decirlo. Hay mucho trabajo ya realizado, probado y aceptado en
entornos que tal vez sean los mismos que los que nos encontramos. Como
se dijo en prrafos anteriores, esta es una gran ayuda para no empezar de
cero nuestros proyectos, no siempre encontraremos la respuesta exacta a
nuestros problemas, pero, si una gua de cmo se resolvi algo parecido.

No debemos tener miedo a consumir respuestas ajenas a las nuestras.


Bibliografa:

[1 https://sophia.javeriana.edu.co, [En lnea]. Available:


] https://sophia.javeriana.edu.co/~lcdiaz/ADOO2006-3/grasp_cpaternostrolvargas-jviafara.pdf. [ltimo acceso: 06 Junio 2016].
[2 www.cartagena99.com, [En lnea]. Available:
] http://www.cartagena99.com/recursos/alumnos/apuntes/Patrones%20de
%20Diseno.pdf. [ltimo acceso: 06 Junio 2016].

Anda mungkin juga menyukai