What are they?

SOLID is an acronym for five design principles intended to make software designs more understandable, flexible, and maintainable. These principles are:

  • Single Responsibility Principle: A class should have one, and only one, reason to change.
  • Open/Closed Principle: Classes should be open for extension but closed for modification.
  • Liskov Substitution Principle: Subclasses should be substitutable for their base classes.
  • Interface Segregation Principle: Clients should not be forced to depend on interfaces they do not use.
  • Dependency Inversion Principle: Depend on abstractions, not concretions.