Monday, March 24, 2008

GRASP Patterns

GRASP, General Responsibility Assignment Software Patterns, is a learning aid for assigning responsibilities to objects. I was introduced to these patterns while reading Craig Larman's Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design and Iterative Development.

There are 9 GRASP Patterns and I have written about most of them:

  • Information Expert ( Part I and Part II ) - A general principal of object design and responsibility assignment?
  • Creator - Who creates?
  • Controller - What first object beyond the UI layer receives and coordinates a system operation?
  • Low Coupling - How to reduce the impact of change?
  • High Cohesion - How to keep objects focused, understandable, and manageable?
  • Polymorphism - Who is responsible when behavior varies by type?
  • Pure Fabrication - Who is responsible when you are desperate, and do not want to violate high cohesion and low coupling?
  • Indirection - How to assign responsibilities to avoid direct coupling?
  • Protected Variations - How to assign responsibilities so that the variations or instability in the elements do not have an undesirable impact on other elements?

I have also written a few articles about how the GRASP Patterns relate to a few popular software applications like DotNetNuke, Community Server, and Enterprise Library:

views

free stats