Skip to content

mahfuzali/solid-java

Repository files navigation

SOLID Principles Java

This project demonstrate the adherence to S.O.L.I.D principles introduced by Robert C. Martin in his 2000 paper "Design Principles and Design Patterns"

The Single Responsibility Principle (SRP)

Gather together the things that change for the same reasons. Separate things that change for different reasons.

The Open Closed Principle (OCP)

A module should be open for extension but closed for modification.

The Liskov Substitution Principle (LSP)

Subclasses should be substitutable for their base classes.

The Interface Segregation Principle (ISP)

Many client specific interfaces are better than one general purpose interface

The Dependency Inversion Principle (DIP)

Depend upon Abstractions. Do not depend upon concretions.