Solid Design Principles

Single Responsibility Principle

The single responsibility principle states that a class, module, or function should have only one reason to change, meaning it should do one thing.

The Open Close Principle

The open-closed principle states that classes, modules, and functions should be open for extension but closed for modification.

The Liskov Substitution Principle

The principle states that child classes or subclasses must be substitutable for their parent classes or super classes. In other words, the child class must be able to replace the parent class. This has the advantage of letting you know what to expect from your code.

The Interface Segregation Principle

The interface segregation principle states that clients should not be forced to implement interfaces or methods they do not use.

The Dependency Inversion Principle

The dependency inversion principle is about decoupling software modules. That is, making them as separate from one another as possible.