patrones grasp
Download
Skip this Video
Download Presentation
Patrones GRASP

Loading in 2 Seconds...

play fullscreen
1 / 18

Patrones GRASP - PowerPoint PPT Presentation


  • 197 Views
  • Uploaded on

Patrones GRASP. Patrones GRASP. Acrónimo de General Responsibility Assignment Software Patterns. Describen los principios fundamentales para asignar responsabilidades a los objetos. El patrón “Experto” (I). Problema: ¿en qué debemos basarnos para asignar responsabilidades a las clases?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Patrones GRASP' - jesus


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
patrones grasp1
Patrones GRASP
  • Acrónimo de General Responsibility Assignment Software Patterns.
  • Describen los principios fundamentales para asignar responsabilidades a los objetos.
el patr n experto i
El patrón “Experto” (I)
  • Problema: ¿en qué debemos basarnos para asignar responsabilidades a las clases?
  • Solución: asignar la responsabilidad al “experto en la información”

El experto en la información es la clase que tiene la información necesaria para cumplir la responsabilidad.

el patr n experto y ii
El patrón “Experto” (y II)
  • Es un poco de perogrullo: expresa que los objetos deben hacer las cosas relacionadas con la información que poseen.
el patr n creador
El patrón “Creador”
  • Problema: ¿quién es el responsable de crear una nueva instancia de una clase?
  • Solución: B es responsable de crear una instancia de A si:
    • B agrega objetos de A
    • B contiene referencias a objetos de A
    • B almacena instancias de A
    • B utiliza estrechamente objetos de A
    • B tiene la información de inicialización que se necesita para crear un objeto de clase A
el patr n bajo acoplamiento i
El patrón “Bajo acoplamiento” (I)
  • Problema: ¿cómo mantener un bajo acoplamiento para lograr, entre otras cosas, alta reutilización?

Nota: el acoplamiento mide el grado en que una clase está conectada a otra, tiene conocimiento de otra o, de alguna manera, depende de otra.

el patr n bajo acoplamiento ii
El patrón “Bajo acoplamiento” (II)
  • Situaciones de acoplamiento:
    • X tiene un miembro o declara una variable de clase Y
    • X tiene un método que toma como parámetro un objeto de clase Y
    • X es un descendiente de Y
el patr n bajo acoplamiento iii
El patrón “Bajo acoplamiento” (III)
  • Desventajas del acoplamiento:
    • Los cambios en una clase pueden implicar cambios en las clases relacionadas.
    • Dificultad de comprensión.
    • Dificultad de reutilización.
    • ¿Pérdida de rendimiento?
el patr n bajo acoplamiento iv
El patrón “Bajo acoplamiento” (IV)
  • Solución: asignar la responsabilidad de manera que el acoplamiento permanezca bajo.
el patr n bajo acoplamiento y v
El patrón “Bajo acoplamiento” (y V)
  • Consideraciones:
    • El bajo acoplamiento permite crear clases más independientes, más reutilizables, lo que implica mayor productividad
    • El acoplamiento puede no ser importante si la reutilización no está en nuestros objetivos
    • La especialización es una forma fuerte de acoplar clases
    • El acoplamiento bajísimo produce diseños muy pobres, objetos sobrecargados, complejos, etc.
el patr n alta cohesi n i
El patrón “Alta cohesión” (I)
  • Problema: ¿cómo mantener la complejidad de una clase en niveles manejables?

Nota: la cohesión mide el grado en que están relacionadas las responsabilidades de una clase.

el patr n alta cohesi n ii
El patrón “Alta cohesión” (II)
  • Desventajas de una clase con baja cohesión:
    • Difícil de comprender
    • Difícil de reutilizar
    • Difícil de mantener
    • Delicada, se afecta mucho por los cambios
el patr n alta cohesi n y iii
El patrón “Alta cohesión” ( y III)
  • Solución: asignar responsabilidades de manera que la cohesión se mantenga alta.
el patr n controlador i
El patrón “Controlador” (I)
  • Problema: ¿quién debería ser responsable de manejar un evento del sistema?

Nota: Un evento del sistema es un evento generado por un actor externo.

¡Clack!

el patr n controlador ii
El patrón “Controlador” (II)
  • Solución: asignar la responsabilidad al “controlador”, que será una clase que:
    • Representa al sistema completo, a la organización... (controlador “fachada”)
    • Representa una parte activa del mundo real que desencadena de tal evento (controlador de rol)
    • Representa un manejador artificial de eventos (controlador de CdU)
el patr n controlador iii
El patrón “Controlador” (III)
  • Sugerencias:
    • Puede utilizarse un controlador por cada CdU, de manera que se encargue de controlar el estado del CdU, la secuencia de eventos, etc.
    • Una vez que el controlador recibe un evento, puede delegar sobre otros objetos para no verse sobrecargado (producirá, además, baja cohesión).
el patr n controlador y iv
El patrón “Controlador” (y IV)

pulsa

buttonEnviarClicked

:AppletCliente

Evento del sistema

Enviar(...)

:Cliente

el patr n comando no es grasp
El patrón “Comando” (no es Grasp)
  • Se utiliza para asignar responsabilidades de manejo de eventos en sistemas que procesan muchos tipos de eventos.

Comando

Ejecutar()

Comando1

Ejecutar()

Comando2

Ejecutar()

ComandoN

Ejecutar()

ad