Single Responsibility Principle
A class changes for only one reason
Open/Closed Principle
A class should be open for extension, closed for editing
Liskov's Substitution Principle
Derived types should cleanly and easily replace base types
Interface Segregation Principle
Favor multiple single-purpose interfaces over composite
Dependency Inversion Principle
Concrete classes depend on abstractions, not vice-versa
Comments