0Pricing
Dart Academy · Lektion

Komposition statt Vererbung

Wenn passend has-a-Entwürfe bevorzugen

Komposition statt Vererbung ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Zwei Wege zur Wiederverwendung

Sie können Verhalten durch Vererbung wiederverwenden oder indem Sie ein anderes Objekt enthalten. Der zweite Ansatz heißt Komposition.

is-a vs has-a

Vererbung bildet is-a ab: Ein Circle ist eine Shape. Komposition bildet has-a ab: Ein Car hat einen Engine.

Eine zusammengesetzte Klasse

Bei der Komposition speichern Sie einen Helfer als Feld und delegieren die Arbeit an ihn, statt von ihm zu erben.

class Car {
  final Engine engine = Engine();
}

Verhalten delegieren

Die äußere Klasse leitet Aufrufe an ihr inneres Objekt weiter. Diese Delegation verwendet Logik wieder, ganz ohne Vererbung.

class Car {
  final engine = Engine();
  void start() => engine.ignite();
}

Das Problem fragiler Basisklassen

Tiefe Vererbungshierarchien sind anfällig. Eine Änderung in einer Elternklasse kann weit entfernte Subklassen unbemerkt beschädigen – eine Falle, die als fragile base class bekannt ist.

Flexibilität zur Laufzeit

Mit Komposition können Sie das innere Objekt jederzeit austauschen. Vererbung ist einmal festgelegt, aber ein Feld kann sich ändern.

class Car {
  Engine engine;
  Car(this.engine);
}

Mit Interfaces kombinieren

Kombinieren Sie Komposition mit Interfaces: Verlassen Sie sich auf einen abstrakten Typ Engine, sodass jeder passende Motor problemlos eingesetzt werden kann.

abstract class Engine {
  void ignite();
}

Einfacher zu testen

Da die Bestandteile separate Objekte sind, können Sie in Tests ein Fake-Objekt übergeben. Komposition macht Mocking einfach und natürlich.

var car = Car(FakeEngine());

Vererben Sie nicht die falschen Dinge

Subklassen erben jedes Member, auch solche, die sie nicht nach außen geben sollten. Komposition teilt nur das, was Sie delegieren möchten.

Wann Vererbung weiterhin sinnvoll ist

Vererbung eignet sich für eine klare is-a-Beziehung mit gemeinsamer Identität. Verwenden Sie Komposition, wenn die Beziehung tatsächlich has-a ist.

Die praktische Regel

Bevorzugen Sie standardmäßig Komposition und setzen Sie Vererbung sparsam ein. So bleiben Entwürfe lose gekoppelt und später leicht änderbar. 🧩

Kurztest

Eine kurze Frage zur Komposition.

Zusammenfassung

Komposition bildet has-a ab, indem andere Objekte enthalten werden und an sie delegiert wird. Sie bleibt flexibel und gut testbar, während Vererbung zu klaren is-a-Beziehungen passt. 👍

Häufig gestellte Fragen

Ist die Lektion „Komposition statt Vererbung“ kostenlos?

Ja — der vollständige Text von „Komposition statt Vererbung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Komposition statt Vererbung“?

Wenn passend has-a-Entwürfe bevorzugen Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Dart Academy zu starten?

Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Komposition statt Vererbung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?

Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Abstrakte Klassen und Methoden
  2. Implizite Interfaces und implements
  3. Polymorphie durch gemeinsame Typen
  4. Komposition statt Vererbung
← Zurück zu Dart Academy