SOLID Principles

-> SRP -> Single Responsibility Principle
-> OCP -> Open/Closed Principle
-> LSP -> Liskov Substitution Principle
-> ISP -> Interface Segregation Principle
-> DIP -> Dependency Inversion Principle

Single Responsibility
-> A class should have only one reason to change.
-> There should be never be, more than one reason for a class to change.
-> We should design a class in such a way that there should not be more than one responsibility associated with a class.

Open Closed
-> Opening up for extension, closing it down for modifications.
-> Modules should be opened for extension but closed for modifications.

Liskov Substitution
-> Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
-> Functions that use references of the base class must be able to use objects of derived class even without knowing them.
-> Always program in interfaces.
-> A subclass should behave in such a way that it will not cause problems when used instead of the superclass.

Interface Segregation Principle
-> Many client-specific interfaces are better than one general-purpose interface.
-> Clients should not be forced to depend upon interfaces that they don’t use.

Dependency Inversion Principles
-> High level modules should not depend on the lower level modules.
-> One should depend upon Abstractions. Do not depend upon concretions.
-> Never derive from concrete class, derive from interfaces.

Leave a Reply

Your email address will not be published. Required fields are marked *