SOLID in Practice

OOP · lesson 14 of 43 · 4 min read

The five SOLID principles stated in concrete Java terms, and where each one actually earns its keep.

Open this lesson in the learning hub

Key points

  • Single responsibility: one reason to change per class. If you need "and" to describe it, split it.
  • Open/closed: add behaviour by adding a class, not by editing a switch. New strategy, old code untouched.
  • Liskov substitution: a subtype must work anywhere its supertype is expected, with no extra surprises.
  • Interface segregation: several small interfaces beat one fat one. Nobody should implement methods that just throw.
  • Dependency inversion: depend on interfaces and take them through the constructor. That is what Spring injection does.
  • SOLID is a smell detector, not a checklist. Applied dogmatically it yields twenty one-method classes nobody can follow.

SOLID exists to keep change cheap, so apply it where change actually happens.

This is a reading copy. The full lesson — with the visual explainer, the interactive lab and a Run button for the code — lives in the OOP course, and every lesson in it is listed on the OOP contents page.