Each of the 5 solid principles are stored within their own package:
- Single Responsibility Principle:
solid.srp/
- Open/Closed Principle:
solid.ocpenclosed/
- Liskov Subsititution Principle:
solid.liskov/
- Interface Segregation Principle:
solid.interfaceseg/
- Dependency Inversion Principle:
solid.depinv/
High Level Overview:
- Single Responsibility - the notion that one class has one responsibility!
- Open closed - Open for extension, closed for modification!
- Liskov Substituion - Base and Derived classes should be able to be swapped without knowing it
- Interface Segregation - Code shouldn't be forced to depend on methods it doesn't use.
- Dependency Inversion - High level objects shouldn't depend on low level objects, but should use abstractions.