In object-oriented computer programming, SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable.


  • Single responsibility
  • Open–closed
  • Liskov substitution
  • Interface segregation
  • Dependency inversion
Snippet from Wikipedia: SOLID

In software engineering, SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. The principles are a subset of many principles promoted by American software engineer and instructor Robert C. Martin, first introduced in his 2000 paper Design Principles and Design Patterns.

The SOLID ideas are

  • The single-responsibility principle: "There should never be more than one reason for a class to change." In other words, every class should have only one responsibility.
  • The open–closed principle: "Software entities ... should be open for extension, but closed for modification."
  • The Liskov substitution principle: "Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it." See also design by contract.
  • The interface segregation principle: "Clients should not be forced to depend upon interfaces that they do not use."
  • The dependency inversion principle: "Depend upon abstractions, [not] concretions."

The SOLID acronym was introduced later, around 2004, by Michael Feathers.

Although the SOLID principles apply to any object-oriented design, they can also form a core philosophy for methodologies such as agile development or adaptive software development.

  • kb/solid.txt
  • Last modified: 2022/08/14 14:15
  • by Henrik Yllemo