Skip to main content

Command Palette

Search for a command to run...

What the Fcuk is S.O.L.I.D ?

Updated
3 min read
What the Fcuk is S.O.L.I.D ?

SOLID is an acronym for 5 principles that help you write better, cleaner, and maintainable code, especially in object-oriented programming.
Think of them like rules for good architecture — just like building a house needs a strong base and clear design, software needs the same.


🧠 Why use SOLID?

  • Code becomes easy to understand

  • Fewer bugs

  • Easier to change and update

  • Promotes reusability


🔠 Let’s break down SOLID one-by-one with daily life examples:


1. S - Single Responsibility Principle

One class should have only one job/responsibility.

🧠 Example: A Housemaid

  • One maid for cooking

  • Another for cleaning

  • Another for washing clothes

If 1 maid does everything, it’s messy. Just like that, a class should only focus on one thing.

✅ So if something goes wrong in cooking, we don’t touch the cleaning part.


2. O - Open/Closed Principle

Software should be open for extension, but closed for modification.

🧠 Example: Mobile Phone Cases

  • Your phone can add a new case (extend)

  • But the phone’s internal structure stays the same (not modified)

✅ You should be able to add new features without changing old code.


3. L - Liskov Substitution Principle

Subclasses should be able to replace their parent classes without breaking anything.

🧠 Example: Charging Devices

  • If you have a charger slot that fits a phone charger, it should also support any new phone model charger (as long as it’s a phone).

✅ Child class should behave properly when used in place of the parent class.


4. I - Interface Segregation Principle

Don’t force a class to implement things it doesn’t use.

🧠 Example: Remote Controls

  • A TV remote has TV buttons

  • A Fan remote doesn’t need volume buttons

❌ Don’t give a remote buttons it never uses
✅ Create small, separate interfaces for different jobs


5. D - Dependency Inversion Principle

Depend on abstractions, not on concrete classes.

🧠 Example: Electricity Plug

  • You plug your phone, fridge, or washing machine into the same socket

  • The socket doesn't care what device it is – it just gives power

✅ Your code should depend on general things (like interfaces) not specific ones (like exact classes)

✅ For Now…

We have learned what SOLID principles are all about and also saw some daily life examples to understand them in a simple way.

But still, things might not be fully clear, right?

Don’t worry!

To get complete clarity, we’ll now go one-by-one through each SOLID principle with a real Java code example so that you understand:

  • What the principle means

  • What happens if we break it

  • How to follow it correctly in Java