S |
Single Responsibility |
"There should never be more than one reason for a class to change." |
O |
Open-Closed |
"Software entities ... should be open for extension, but closed for modification." |
L |
Liskov Substitution |
"Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it." |
I |
Interface Segregation |
Clients should not be forced to depend upon interfaces that they do not use." |
D |
Dependency Inversion |
"Depend upon abstractions, [not] concretions." |