Single Responsibility
Open / Closed Principle
Liskov's Substitution Principle
Interface Segregation
Dependency Inversion