SOLID Principles
In this post, I am going to discuss SOLID principles, yes I mean the holy grail of OOP that empower developers to produce better software. Let's start with the definition. SOLID Principles is an acronym for five design principles intended to make software design more understandable, flexible and maintainable; including S ingle Responsibility principle, O pen-Closed principle, L iskov Substitution principle, I nterface Segregation principle and D ependency Inversion principle. The consequence of following SOLID principles will lead developers towards more extendable, logical and easier to read software; and even thought it seems like an irony to have a SOLID software but we all hope to these principles guide us toward more understandable, flexible and maintainable software. Now let's get into the principles' details. Single Responsibility Principle (SRP) A class should have only a single responsibility, that is, only changes to one part of