# README
Solid Principles
Single Responsibility Principle
class or method should have only one responsibility and only one reason to change.
Open-Closed Principle
software entities like class, modules, functions etc., should be able to extend a class behaviour without modifying it. Separates existing code from modified code to provide better stability, maintainability and minimizes changes in code.
Liskov Substitution Principle
Objects ond a superclass should be replaceable with objects of its subclasses without breaking the application.
Interface Segregation Principle
no code should be forced to depend on methods it does not use. Means that we should break larger interfaces into smaller ones.
Dependency Inversion Principle
high level modules should not depend on low level modules; both should depend on abstractions. In simple words, high level modules should depend on abstractions rather than concrete implementations.