SOLID Principles
Author: David Giard (@DavidGiard)
Code
Single responsibility principle
A class should have one and only one reasons to change.
Open closed principle
Objects or entities should be
- open for extension;
- but closed for modification
Liskov substitution principle
If something is true for the base class, it must be true for every derived class
Interface segregation principle
A client should never be forced to implement and interface that it doesn't use
Dependency Inversion principle
Entities must depend on abstractions, not on concrete implementations