Composition over Inheritance
Komposition statt Vererbung empfiehlt, Verhalten durch das Enthalten anderer Objekte statt durch Vererbung aufzubauen, um fragile Basisklassen und tiefe Vererbungsketten zu vermeiden.
Zweck
Flexible, wartbare Objektbeziehungen entwerfen und die Kopplung sowie Fragilität der Vererbung vermeiden.
Mechanismus
Eine has-a-Beziehung (Komposition) wird einer is-a-Beziehung (Vererbung) vorgezogen. Komposition ermöglicht den Austausch von Komponenten zur Laufzeit, während Vererbung zur Kompilierzeit fixiert ist. Die Muster Strategy und Decorator nutzen Komposition. Schnittstellen plus Komposition erreichen Polymorphie ohne Vererbung.
Anwendungsfälle
- Objektorientiertes Design
- Design Patterns
- Code-Architektur