SOLID

Definition

SOLID is a set of object-oriented design principles intended to reduce unnecessary complexity and improve maintainability. Together, the principles encourage systems that are easier to change, extend, test, and reason about.


The Five Principles

  • Single Responsibility Principle — a class should have one reason to change
  • Open/Closed Principle — software should be open for extension but closed for modification
  • Liskov Substitution Principle — subtypes should be usable in place of their base types without breaking behavior
  • Interface Segregation Principle — clients should not depend on methods they do not use
  • Dependency Inversion Principle — high-level logic should depend on abstractions rather than concrete implementations

Why Teams Use It

  • reduces fragile coupling
  • supports cleaner extension points
  • improves unit testing and substitution
  • helps keep domain logic separate from infrastructure details

Limits

SOLID is useful as a design lens, but applying it mechanically can also create over-abstraction. The source notes place it in the context of avoiding unnecessary complexity, not generating more of it.


Relationships


References

  • SOLID Training 2021
  • _Best Practice of Software Engineering and Architecture