Sobes.tech
Senior

¿Qué es GRASP?

sobes.tech AI

Respuesta de la IA

GRASP (Patrones de Asignación de Responsabilidades Generales de Software) es un conjunto de principios universales para asignar responsabilidades a clases y objetos en el diseño orientado a objetos. Ayudan a crear sistemas flexibles, mantenibles y reutilizables. Los patrones principales de GRASP incluyen:

  • Experto en Información: Un objeto que posee la información necesaria para realizar una acción debe asumir la responsabilidad de esa acción.
  • Creador: La clase que contiene o agrupa instancias de otras clases, está estrechamente relacionada con ellas o tiene datos de inicialización para crearlas, debe asumir la responsabilidad de su creación.
  • Controlador: La clase responsable de manejar eventos del sistema (por ejemplo, acciones del usuario), debe asumir la responsabilidad de coordinar el trabajo de otros objetos, pero no de realizar el trabajo en sí.
  • Fabricación Pura: Clase creada artificialmente, que no refleja la conceptualización del dominio, pero creada para reducir el acoplamiento, mejorar la cohesión o facilitar la reutilización.
  • Bajo Acoplamiento: Principio de diseño que busca minimizar las dependencias entre clases.
  • Alta Cohesión: Principio de diseño que busca que los métodos de una clase estén estrechamente relacionados en funcionalidad.
  • Polimorfismo: Asignación de responsabilidades para elegir comportamientos basados en el tipo de objeto (a través de métodos virtuales).
  • Variaciones Protegidas: Principio de diseño que protege contra cambios en otros elementos (objetos, subsistemas, sistemas) mediante la definición de una interfaz estable.
  • Indirección: Asignación de responsabilidades a un objeto intermediario para evitar una conexión directa entre dos elementos.

La aplicación de GRASP ayuda a evitar controladores y gestores "gruesos", mejorar la estructura del código y facilitar su evolución.