S.O.L.I.D. Principles Around You
In this article, I want to briefly go through SOLID principles (the acronym that stands for five basic principles of object-oriented programming and design) supplying each of them with real-world visual examples to make those principles more understandable, readable and memorizable.
So let’s move on!
A class should have only a single responsibility. Only one potential change in the software’s specification should be able to affect the specification of the class.
Software entities should be open for EXTENSION, but closed for MODIFICATION. Allow behavior to be extended without modifying the source code.
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
Many client-specific interfaces are better than one general-purpose interface. No client should be forced to depend on methods it does not use.
One should depend upon abstractions, not concretions.
- High-level modules should not depend on low-level modules. Both should depend on abstractions.
- Abstractions should not depend on details. Details should depend on abstractions.
The plug doesn’t care which type of wire it uses, it just needs wires that conduct electricity.
I hope these illustrations have been useful for you :)