Posted on One min read

A set of principles to design or write classes.

Single Responsibility Principle

A class should have one, and only one, reason to change.

Open - Closed Principle

You should be able to extend a classes behavior, without modifying it.

Liskov Substitution Principle

Derived classes must be substitutable for their base classes.

Interface Segregation Principle

Make fine grained interfaces that are client specific.

Dependency Inversion Principle

Depend on abstractions, not on concretions.