- SRP Single Responsibility Principle : A class should have one reason to change
- OCP Open for extension, closed for modification
- LSP Liskov Substitution Principle enable to replace objects of a parent class with objects of subclass without breaking the application
- DIP Dependency Inverison Principle isolate the class from concrete implementation and having them depend on an abstract classes or interfaces.
- ISP Interface Segregation Principle : Splitting methods of a contract into groups of responsability and assigning interface to these groups. "# SOLID"