GRASP (General Responsibility Assignment Software Patterns) é um design pattern em desenvolvimento de software orientado a objetos usado para atribuir responsabilidades por diferentes modules de código.
Como uma ferramenta para desenvolvedores de software, o GRASP fornece um meio de resolver problemas organizacionais e oferece uma maneira comum de falar sobre conceitos abstratos. O padrão de design define responsabilidades para objetos e classes em < orientado a objetos< design de programas.
GRASP com programação orientada a objetos classifica problemas e suas soluções em conjunto como padrões. With these problems and solutions well defined, they can be applied in other similar instances. GRASP assigns seven types of roles to classes and objects in order to make for clear delineation of responsibilities. These roles are:
- Controller
- Information Expert
- Creator
- High Cohesion
- Low Coupling
- Polymorphism
- Protected Classes
GRASP is occasionally coupled with other design patterns such as SOLID. Esta combinação faz o moniker convincente do SOLID GRASP. Padrões de design como estes ajudam a manter o código mais simples, mais organizado, mais compreensível, analisável e reutilizável.