SOLID and GRASP
SOLID
SOLID (opens in a new tab) is a mnemonic acronym for 5 design principles intended to make object-oriented designs more understandable, flexible, and maintainable. They were introduced by Robert Martin in a paper about software rot (opens in a new tab) in 2000. The SOLID principles are:
- S: Single-responsibility principle
- O: Open-closed principle
- L: Liskov substitution principle
- I: Interface segregation principle
- D: Dependency inversion principle
GRASP
GRASP (opens in a new tab), short for General Responsibility Assignment Software Patterns, is a set of 9 fundamental patterns in object-oriented design and responsibility assignment, published by Craig Larman in 1997. The different patterns and principles used in GRASP are:
- Controller
- Creator
- Indirection
- Information expert
- Low coupling
- High cohesion
- Polymorphism
- Protected variations
- Pure fabrication
Resources
- Why SOLID principles are still the foundation for modern software architecture? (opens in a new tab)
- SOLID: The first 5 principles of object oriented design (opens in a new tab)
- Design patterns, GRASP, and SOLID (opens in a new tab)
- The SOLID principles (opens in a new tab)
- Pablo’s SOLID software development (opens in a new tab)
- SOLID: Software engineering principles (opens in a new tab)
- GRASP design principles (opens in a new tab)
- Design: GRASP and refinement (opens in a new tab)
- Applying UML and patterns (opens in a new tab)
- Hacker laws (opens in a new tab)