GRASP Principles
General Responsibility Assignment Software Patterns (Larman).
Table of Contents
- Information Expert: Assign responsibility to the class with the information.
- Creator: Who creates A? Container of A, recorder of A, user of A.
- Controller: Entry point for a system operation (Facade/Use Case controller).
- Low Coupling: Minimizing dependencies/impact of change.
- High Cohesion: Keeping responsibilities focused and manageable.
- Polymorphism: Handling handling alternatives based on type.
- Pure Fabrication: Artificial class to maintain cohesion/coupling (e.g., Service).
- Indirection: Intermediate object to decouple components.
- Protected Variations: Wrapper around instability/variation points.