There are seven basic principles of object-oriented design patterns:
Open Closed Principle (Open Closed Principle, OCP)
Single Responsibility Principle (Single Responsibility Principle, SRP)
Liskov Substitution Principle (LSP)
Dependency Inversion Principle (DIP)
Interface Segregation Principle (ISP)
Composite/Aggregate Reuse Principle (CARP)
Least Knowledge Principle (LKP) or Law of Demeter (LOD)
