SOLID
by Michael Schnell
1. Single Responsibility Principle
1.1. There should never be more than one reason for a class to change
1.2. NEU: "A module should be responsible to one, and only one, actor"
1.3. Durch die Anforderungen eines Akteurs definierte Funktionalitäten und Datenstrukturen
2. Open Closed Principle
2.1. A class is open for enhancements but closed against modifications
3. Liskov Substitution Principle
3.1. A subtype behaves same as its base type
4. Interface Segregation Principle
4.1. Clients shall be not confused with details which they do not need
5. Dependency Inversion Principle
5.1. High-level classes must not depend on low-level classes, but both on interfaces
5.2. Interfaces must not depend on details, but details on interfaces
5.3. Schalter/Lampe Besipiel