Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman introduced me to GRASP. GRASP stands for General Responsibility Assignment Software Patterns.
GRASP consists of 9 Patterns that help you with the fundamental aspect of OO Design, which is assigning responsibilities to objects. The nine GRASP patterns are:
- Controller
- Creator
- High Cohesion
- Indirection
- Information Expert
- Low Coupling
- Polymorphism
- Protected Variations
- Pure Fabrications
If you haven’t purchased the 3rd edition of Applying UML and Patterns by Craig Larman (Amazon), I highly recommend it. It is an unbelievably easy-to-read and informative book on object-oriented design and iterative development. It is hands-down the best development book I purchased in 2004.
Over the next couple of weeks, I am going to introduce the nine GRASP Patterns as discussed in Craig Larman’s book. Craig does such an awesome job defining the patterns that I will admittedly steal his definitions from the book. However, I will provide a number of original code examples to help clarify real-world use of the patterns and give him credit where credit is due.