The SOLID concepts 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
-
The Interface segregation principle: Many client-specific interfaces are better than one general-purpose interface
-
The Dependency inversion principle: Depend upon abstractions, not concretions