SOLID Design Principles: Five Principles of OOP

Over the course of the past year I’ve been working on a five part series on SOLID design principles. This page serves as a quick navigation to all five posts as they arrive.

What is SOLID?

SOLID is an acronym for five design principles intended to make our software understandable, flexible, and maintainable. The ideas were conceptualized by Robert C. Martin (aka., Uncle Bob) in his Design Principles and Design Patterns paper circa 2000.

Single Responsibility Principle: “a class should have only one reason to change.”

Open/Closed Principle: “classes, modules and functions should be open for extension, closed for modification.”

Liskov Substitution Principle: “derived classes must be substitutable for their base class.”

Interface Segregation Principle: “no client should be forced to depend on methods it does not use.”

Dependency Inversion Principle: “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.”

Other Reading

Here are a few other links that talk about SOLID Design Principles:


Photo by Marco Bianchetti on Unsplash