1 minute read

The SOLID principle is one of the most common acronym to describe the principles of object-oriented programming, which is subset of the many principles introduced by Rob C Matin in his 2000 paper - Design Principles and Design Patterns, in the article - PrinciplesOfOod.

In my own words, the 5 principles can be summed up as such in today’s internet lingo.

Single Responsibility A class should only have 1 job
Open-Closed Because a class should have only 1 job, if more functionalities is required, extend the class, don’t modify it
Liskov Substitution Since the class is extended, I can replace the original class with the extended class without problems
Interface Segregation An interface should also have only 1 job too
Dependency Inversion Don’t be racist, define the variable by who can do the job (use interface), not by lineage (class hierarchy)

With the above principles, it means that we should break down our application to be run by classes. Each class should be small enough for 1 purpose only. And we define the variables, we define by what it can do, which is by interface, not which class it should belong to. So that if there is another class who can do the same job better, we can give the job to that class.