SOLID Principles:
- S - Single Responsibility Principle
- O - Open Close Principle
- L - Liskov Substitute Principle
- I - Interface Segregation Principle
- D - Deepndency Inversion Principle
Single Responsibility Principle
- "A class should have only one reason to change" Open Closed Principle
- "Software entities such as classes, modules, functions etc. should be open for extension but closed for modification." Liskov Substitute Principle
- "S is a subtype of T, Then objects of type T may be replaced with objects of type S" Interface Segregation Principle
- "No clients should be forced to depend on methods it does not use" Dependency Inversion Principle
- "Highlevel modules should not depend on low level modules. Both should depend on abstractions"