Os princípios GRASP (General Responsibility Assignment Software Patterns) são padrões de design de software orientados a objetos que servem como diretrizes para a atribuição de responsabilidades a classes e objetos.
Dentre os princípios GRASP podemos identificar os seguintes:
- A Baixo Acoplamento (Low Coupling, Proteção contra Variações (Protected Variations) e Responsabilidade única (Single Responsibility).
- B Alta Coesão (High Cohesion), Indireção (Indirection) e Substituição de Liskov (Liskov Substitution).
- C Controlador (Controller), Especialista na Informação (Information Expert) e Inversão da dependência (Dependency Inversion).
- D Controlador (Controller), Criador (Creator) e Fabricação Pura/Pura Fabricação (Pure Fabrication).
- E Baixa Coesão (Low Cohesion), Indireção (Indirection) e Polimorfismo (Polymorphism).