6.1 Single Responsibility Principle
6.2 Open/Closed Principle
6.3 Liskov Substitution Principle
6.4 Interface Segregation Principle
6.5 Dependency Inversion Principle