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)); // trueRegeln 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
- Standard- und parametrisierte Konstruktoren
- Benannte Konstruktoren für klare Absichten
- Initialisierungslisten und Weiterleitung
- Factory- und const-Konstruktoren