DEV Community

Khafido Ilzam
Khafido Ilzam

Posted on

SOLID and its relationship with OOP

SOLID is like the “5 rules” to write good OOP code. Not just working code, but clean and maintainable code.

S — Single Responsibility Principle (SRP)

A class should have only one reason to change. Each class, module, or function should handle only one responsibility. When a class has multiple reasons to change, it becomes fragile and tightly coupled.

O — Open/Closed Principle (OCP)

Software entities should be open for extension, but closed for modification. You should be able to add new functionality without changing existing code.

L — Liskov Substitution Principle (LSP)

A child class should fully replace its parent without breaking anything.

I — Interface Segregation Principle (ISP)

Don’t force classes to depend on things they don’t use. It’s better to have many small, specific interfaces than one large, general one.

D — Dependency Inversion Principle (DIP)

High-level modules (business logic) should not depend on low-level modules (e.g., database drivers).
Both should depend on abstractions (interfaces or abstract classes).

SOLID Principle What it Means Relation to OOP
S — Single Responsibility One class = one job only. Keeps objects focused and simple (Encapsulation).
O — Open/Closed Open for extension, closed for modification. Add new features without changing old code (Inheritance & Polymorphism).
L — Liskov Substitution A child class should fully replace its parent without breaking anything. Keeps Inheritance safe and logical.
I — Interface Segregation Specific interfaces rather than one large, general one. Encourages cleaner Abstraction.
D — Dependency Inversion Depend on abstractions, not concrete implementations. Promotes flexible and testable design (Abstraction & Encapsulation).

SOLID is how you design those objects so the system stays clean, scalable, and easy to change.

Top comments (0)