The Dependency Inversion Principle (DIP) is the fifth of the five basic principles of object-oriented programming and design, formulated by Robert Martin, known as Uncle Bob.
The principle says that
High level modules should not depend on low level modules; both should depend on abstractions. Abstractions should not depend on details. Details should depend upon abstractions.
The Interface Segregation Principle (ISP) is the fourth of the five basic principles of object-oriented programming and design, formulated by Robert Martin, known as Uncle Bob.
The principle says that
Many client-specific interfaces are better than one general-purpose interface.
The Liskov Substitution Principle (LSP) is the third of the five basic principles of object-oriented programming and design, formulated by Robert Martin, known as Uncle Bob.
The principle says that
Subclasses should be substitutable for their base classes.
The Open-Closed Principle (OCP) is second of the five basic principles of object-oriented programming and design, formulated by Robert Martin, known as Uncle Bob.
The principle says that
Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
The Single Responsibility Principle (SRP) is the one of the five basic principles of object-oriented programming and design, formulated by Robert Martin, known as Uncle Bob.
The principle says that
A class should be one, and only one, reason to change.