SOLID Single Responsibility Principle (one reason to change) Open/Closed Principle Liskov Substition Principle Interface Segregation Principle Dependency Inversion Principle Tag principle