0Pricing
Dart Academy · Lektion

Factory- und const-Konstruktoren

Objekte zwischenspeichern, Untertypen zurückgeben oder Compilezeitobjekte erstellen

Factory- und const-Konstruktoren 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.

Was ein factory-Konstruktor ist

Ein factory-Konstruktor sieht wie ein normaler Konstruktor aus, aber Sie bestimmen, was er zurückgibt. Daher muss er nicht jedes Mal ein völlig neues Objekt erstellen.

class Logger {
  factory Logger() => _shared;
}

factory kann ein zwischengespeichertes Objekt zurückgeben

Da ein factory-Konstruktor etwas zurückgibt, statt immer ein neues Objekt zu erstellen, kann er eine zwischengespeicherte Instanz liefern – ideal für Singletons oder Pools.

class Logger {
  static final _it = Logger._();
  Logger._();
  factory Logger() => _it;
}

factory kann einen Subtyp zurückgeben

Ein factory-Konstruktor darf jedes Objekt des passenden Typs zurückgeben, auch eine Unterklasse. So können Sie die konkrete Klasse zur Laufzeit auswählen.

factory Shape(String k) =>
    k == "box" ? Box() : Dot();

factory muss etwas zurückgeben

Anders als ein normaler Konstruktor hat ein factory-Konstruktor einen Rumpf, der eine Instanz zurückgeben muss. Er setzt Felder niemals direkt mit this.

factory User.fromJson(Map j) {
  return User(j["name"]);
}

Eine typische Parsing-Factory

Das Factory-Muster eignet sich besonders gut zum Parsen, etwa zum Erstellen eines Objekts aus einer Map. Das fromJson-Idiom ist in Dart und Flutter weit verbreitet.

factory User.fromJson(Map<String, dynamic> j) =>
    User(j["name"]);

Was ein const-Konstruktor ist

Mit einem const-Konstruktor können Sie konstante Objekte zur Compilezeit erstellen, deren Felder allesamt final und im Voraus bekannt sind.

class Point {
  final int x, y;
  const Point(this.x, this.y);
}

Const-Instanzen erstellen

Rufen Sie ihn mit dem Schlüsselwort const auf, um ein unveränderliches Objekt zu erstellen. Zwei const-Objekte mit gleichen Werten sind exakt dieselbe Instanz.

const a = Point(1, 2);
const b = Point(1, 2);
print(identical(a, b)); // true

Regeln für const-Konstruktoren

Jedes Feld muss final sein, und der Konstruktor-Rumpf muss leer bleiben. Diese Regeln ermöglichen es Dart, das Objekt zur Compilezeit einzufrieren.

class Color {
  final int v;
  const Color(this.v);
}

const spart Speicher

Identische const-Objekte werden zu einer gemeinsamen Instanz kanonisiert. Ihre Wiederverwendung verursacht daher keinen zusätzlichen Speicherbedarf.

const reds = [Color(255), Color(255)];

factory und const im Überblick

Verwenden Sie factory, wenn Sie zur Laufzeit entscheiden, was zurückgegeben wird. Verwenden Sie const für unveränderliche Werte zur Compilezeit.

Ideen kombinieren

Eine Klasse kann einen normalen Konstruktor, eine Factory zum Parsen und einen const-Konstruktor für feste Werte anbieten und damit jeden Bedarf bei der Erstellung abdecken.

Kurze Überprüfung

Kurze Überprüfung zu factory-Konstruktoren.

Zusammenfassung: factory und const

Sie haben gelernt, dass factory-Konstruktoren steuern, was sie zurückgeben, während const-Konstruktoren gemeinsam genutzte, unveränderliche Objekte zur Compilezeit erstellen. Gute Arbeit! 🎉

Häufig gestellte Fragen

Ist die Lektion „Factory- und const-Konstruktoren“ kostenlos?

Ja — der vollständige Text von „Factory- und const-Konstruktoren“ 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 „Factory- und const-Konstruktoren“?

Objekte zwischenspeichern, Untertypen zurückgeben oder Compilezeitobjekte erstellen 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 „Factory- und const-Konstruktoren“?

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. Standard- und parametrisierte Konstruktoren
  2. Benannte Konstruktoren für klare Absichten
  3. Initialisierungslisten und Weiterleitung
  4. Factory- und const-Konstruktoren
← Zurück zu Dart Academy