Constructeurs factory et const
Mettre en cache, renvoyer des sous-types ou créer des objets à la compilation
Constructeurs factory et const est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.
Le rôle d'un constructeur de fabrique
Un constructeur de fabrique ressemble à un constructeur normal, mais vous contrôlez ce qu'il retourne. Il n'a donc pas besoin de construire un nouvel objet à chaque appel.
class Logger {
factory Logger() => _shared;
}Une fabrique peut retourner un objet mis en cache
Comme elle retourne un objet au lieu d'en créer systématiquement un, une fabrique peut fournir une instance mise en cache, ce qui convient parfaitement aux instances uniques ou aux réservoirs d'objets.
class Logger {
static final _it = Logger._();
Logger._();
factory Logger() => _it;
}Une fabrique peut retourner un sous-type
Une fabrique peut retourner n'importe quel objet du type approprié, y compris une sous-classe, ce qui vous permet de choisir la classe concrète lors de l'exécution.
factory Shape(String k) =>
k == "box" ? Box() : Dot();Une fabrique doit retourner une valeur
Contrairement à un constructeur normal, une fabrique possède un corps qui doit retourner une instance ; elle ne définit jamais directement les champs avec this.
factory User.fromJson(Map j) {
return User(j["name"]);
}Une fabrique courante pour l'analyse
Le modèle de la fabrique est particulièrement utile pour l'analyse, par exemple pour construire un objet à partir d'une carte. L'idiome fromJson est très courant dans Dart et Flutter.
factory User.fromJson(Map<String, dynamic> j) =>
User(j["name"]);Le rôle d'un constructeur constant
Un constructeur constant vous permet de construire des objets constants connus dès la compilation, dont tous les champs sont définitifs.
class Point {
final int x, y;
const Point(this.x, this.y);
}Créer des instances constantes
Appelez-le avec le mot-clé constant pour créer un objet figé. Deux objets constants ayant les mêmes valeurs sont exactement la même instance.
const a = Point(1, 2);
const b = Point(1, 2);
print(identical(a, b)); // trueRègles des constructeurs constants
Chaque champ doit être définitif et le corps du constructeur doit être vide. Ces règles permettent à Dart de figer l'objet lors de la compilation.
class Color {
final int v;
const Color(this.v);
}Les constantes économisent de la mémoire
Les objets constants identiques sont canonicalisés en une seule instance partagée ; leur réutilisation ne coûte donc rien de plus en mémoire.
const reds = [Color(255), Color(255)];Fabrique ou constante en un coup d'œil
Choisissez une fabrique lorsque vous déterminez quoi retourner lors de l'exécution ; choisissez une constante lorsque vous voulez des valeurs immuables connues dès la compilation.
Combiner les concepts
Une classe peut proposer un constructeur normal, une fabrique pour l'analyse et un constructeur constant pour les valeurs fixes, couvrant ainsi tous les besoins de création.
Vérification rapide
Vérification rapide sur les constructeurs de fabrique.
Récapitulatif : fabrique et constantes
Vous avez appris que les constructeurs de fabrique contrôlent ce qu'ils retournent, tandis que les constructeurs constants créent des objets immuables et partagés dès la compilation. Excellent travail ! 🎉
Apprends Dart avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Constructeurs factory et const » est-elle gratuite ?
Oui — le texte complet de « Constructeurs factory et const » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Constructeurs factory et const » ?
Mettre en cache, renvoyer des sous-types ou créer des objets à la compilation Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Dart Academy ?
Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Constructeurs factory et const » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?
Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Constructeurs par défaut et paramétrés
- Constructeurs nommés pour une intention claire
- Listes d’initialisation et redirection
- Constructeurs factory et const