Single Responsibility Principle (SRP).
Open-Closed Principle (OCP).
Liskov Substitution Principle (LSP).
Interface Segregation Principle (ISP).
Dependency Inversion Principle (DIP).
These principles were introduced by Robert C. Martin in the early 2000s; in fact, they are just a selection of five principles out of dozens that are expressed in Martin’s books and his blog. These five particular topics permeate the discussion of patterns and software design in general, ...