- Single Responsibility Principle (SRP): Jede Klasse sollte nur eine Aufgabe haben.
- Open-Closed Principle (OCP): Klassen sollten offen für Erweiterungen, aber geschlossen für Änderungen sein.
- Liskov Substitution Principle (LSP): Subklassen sollten immer durch ihre Basisklassen ersetzbar sein.
- Interface Segregation Principle (ISP): Interfaces sollten nur so groß sein wie nötig.
- Dependency Inversion Principle (DIP): Klassen sollten nicht von konkreten Klassen abhängen, sondern von Interfaces.