SOLID: Design Principles
Posted on 05 Feb, 2021
Single Responsibility Principle
An object should do exactly one thing, and should be the only object in the codebase that does that one thing.
A class should have one, and only reason to change
Open-closed principle
A class should be open to extension, but closed to change.
You should be able to extend classes behaviour, without modifying it.
Liskov substitution principle
Derived classes must be substitutable for their base classes.
An extension of the Open Close Principle and it means that we must make sure that new derived classes are extending the base classes without changing their behavior.
Interface segregation principle
An interface should have as few methods as is feasible to provide the functionality of the role defined by the interface.
Make fine grained interfaces that are client specific.
Dependency Inversion principle
Depend on abstractions, not on concretions (concrete details)
High-level modules should not depend on low-level modules. Both should depend on abstractions (interfaces)
Abstractions should not depend on details. Details should depend on abstractions.
Resources
Last updated