SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Ventajas del diseño con patrones
•   Permiten rehusar soluciones probadas
•   Facilitan la comunicación entre diseñadores
•   Los patrones tienen nombres estándar
•   Facilitan el aprendizaje al diseñador inexperto
Patrones fundamentales es el GRASP
 (Patrones de Principios Generales
  para Asignar Responsabilidades)
GRASP (Patrones de Principios
         Generales para Asignar
           Responsabilidades)
•   Experto en información
•   Creador
•   Alta cohesión
•   Bajo acoplamiento
•   Controlador
Experto en información
• Problema: ¿Cuál es un principio para asignar
  responsabilidades a los objetos?
• Solución: Asignar una responsabilidad al
  experto en información (la clase que tiene la
  información necesaria para realizar la
  responsabilidad)
Creador
• ¿Quién debería ser el responsable de la creación de
  una nueva instancia de alguna clase?
• Asignar a la clase B la responsabilidad de crear una
  instancia de la clase A si se cumple una o más de los
  casos siguientes:
• B agrega objetos de A
• B contiene objetos de A
• B registra instancias de objetos de A
• B utiliza más estrechamente objetos de A
• B tiene los datos de inicialización que se pasará a un
  objeto de A cuando sea creado
Alta cohesión
• Problema: ¿Cómo mantener la complejidad
  manejable?
• Asignar una responsabilidad de manera que la
  cohesión permanezca alta.
Bajo acoplamiento
• Problema: ¿Cómo soportar bajas
  dependencias, bajo impacto del cambio e
  incremento de la reutilización?
• Asignar una responsabilidad de manera que el
  acoplamiento permanezca bajo.
• Una clase con alto acoplamiento confía en
  muchas otras clases
• Los cambios en las clases relacionadas fuerzan
  cambios locales
Controlador
• Problema: ¿Quién debe ser el responsable de
  gestionar un evento de entrada al sistema?
• Asignar la responsabilidad de recibir o manejar un mensaje de
  evento del sistema a una clase que representa una de las
  siguientes opciones
• Representa el sistema global
• Utiliza la misma clase controlador para todos los eventos del
  sistema
Ventajas del diseño con patrones GRASP

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (12)

Moda Actual PUCESA
Moda Actual PUCESAModa Actual PUCESA
Moda Actual PUCESA
 
Moda Actual PUCESA
Moda Actual PUCESAModa Actual PUCESA
Moda Actual PUCESA
 
Jabones de limon
Jabones de limonJabones de limon
Jabones de limon
 
Herramientas colaborativas y web 2 meche
Herramientas colaborativas y web 2 mecheHerramientas colaborativas y web 2 meche
Herramientas colaborativas y web 2 meche
 
Mapaconceptualgerenciadeproyectos
MapaconceptualgerenciadeproyectosMapaconceptualgerenciadeproyectos
Mapaconceptualgerenciadeproyectos
 
Presentaciones digitales
Presentaciones digitalesPresentaciones digitales
Presentaciones digitales
 
Las sentencias sql se dividen
Las sentencias sql se dividenLas sentencias sql se dividen
Las sentencias sql se dividen
 
Adquisiones, Fusiones y Escisiones - Dr. Dan Nakamura
Adquisiones, Fusiones y Escisiones - Dr. Dan NakamuraAdquisiones, Fusiones y Escisiones - Dr. Dan Nakamura
Adquisiones, Fusiones y Escisiones - Dr. Dan Nakamura
 
Megatrendit - taustatutkimus
Megatrendit - taustatutkimusMegatrendit - taustatutkimus
Megatrendit - taustatutkimus
 
Organizing an illinois business entity
Organizing an illinois business entityOrganizing an illinois business entity
Organizing an illinois business entity
 
Practicas del Lenguaje: Mitos Griegos
Practicas del Lenguaje: Mitos GriegosPracticas del Lenguaje: Mitos Griegos
Practicas del Lenguaje: Mitos Griegos
 
Jabones de limon
Jabones de limonJabones de limon
Jabones de limon
 

Ähnlich wie Ventajas del diseño con patrones GRASP

Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoSpimy
 
Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Hack '
 
Principios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLIDPrincipios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLIDLuis Alexander Aldazabal Gil
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVMsuperserch
 
6 arquitectura desoftware
6 arquitectura desoftware6 arquitectura desoftware
6 arquitectura desoftwaregaston6711
 
OC 1 Sistemas en la empresa digital 2022.pdf
OC 1  Sistemas en la empresa digital 2022.pdfOC 1  Sistemas en la empresa digital 2022.pdf
OC 1 Sistemas en la empresa digital 2022.pdfGorkyGabrielAriasDaz
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraAgustin Ramos
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clasesJesús Cedeño
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clasesJesús Cedeño
 

Ähnlich wie Ventajas del diseño con patrones GRASP (20)

Patrones Grasp
Patrones GraspPatrones Grasp
Patrones Grasp
 
Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De Diseno
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Principios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLIDPrincipios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLID
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Clean code capítulo 10
Clean code capítulo 10Clean code capítulo 10
Clean code capítulo 10
 
Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVM
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
6 arquitectura desoftware
6 arquitectura desoftware6 arquitectura desoftware
6 arquitectura desoftware
 
OC 1 Sistemas en la empresa digital 2022.pdf
OC 1  Sistemas en la empresa digital 2022.pdfOC 1  Sistemas en la empresa digital 2022.pdf
OC 1 Sistemas en la empresa digital 2022.pdf
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidra
 
Pruebas internas
Pruebas internasPruebas internas
Pruebas internas
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 

Ventajas del diseño con patrones GRASP

  • 1. Ventajas del diseño con patrones • Permiten rehusar soluciones probadas • Facilitan la comunicación entre diseñadores • Los patrones tienen nombres estándar • Facilitan el aprendizaje al diseñador inexperto
  • 2. Patrones fundamentales es el GRASP (Patrones de Principios Generales para Asignar Responsabilidades)
  • 3. GRASP (Patrones de Principios Generales para Asignar Responsabilidades) • Experto en información • Creador • Alta cohesión • Bajo acoplamiento • Controlador
  • 4. Experto en información • Problema: ¿Cuál es un principio para asignar responsabilidades a los objetos? • Solución: Asignar una responsabilidad al experto en información (la clase que tiene la información necesaria para realizar la responsabilidad)
  • 5. Creador • ¿Quién debería ser el responsable de la creación de una nueva instancia de alguna clase? • Asignar a la clase B la responsabilidad de crear una instancia de la clase A si se cumple una o más de los casos siguientes: • B agrega objetos de A • B contiene objetos de A • B registra instancias de objetos de A • B utiliza más estrechamente objetos de A • B tiene los datos de inicialización que se pasará a un objeto de A cuando sea creado
  • 6.
  • 7. Alta cohesión • Problema: ¿Cómo mantener la complejidad manejable? • Asignar una responsabilidad de manera que la cohesión permanezca alta.
  • 8. Bajo acoplamiento • Problema: ¿Cómo soportar bajas dependencias, bajo impacto del cambio e incremento de la reutilización? • Asignar una responsabilidad de manera que el acoplamiento permanezca bajo. • Una clase con alto acoplamiento confía en muchas otras clases • Los cambios en las clases relacionadas fuerzan cambios locales
  • 9. Controlador • Problema: ¿Quién debe ser el responsable de gestionar un evento de entrada al sistema? • Asignar la responsabilidad de recibir o manejar un mensaje de evento del sistema a una clase que representa una de las siguientes opciones • Representa el sistema global • Utiliza la misma clase controlador para todos los eventos del sistema