Zum Inhalt springen
uencoder

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

Verwandte Begriffe

References