0Pricing
Dart Academy · Leçon

La composition plutôt que l’héritage

Privilégier les conceptions de type « possède » lorsqu’elles conviennent

La composition plutôt que l’héritage 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.

Deux façons de réutiliser du code

Vous pouvez réutiliser un comportement en en héritant ou en conservant un autre objet. La seconde approche s’appelle la composition.

Est-un contre possède-un

L’héritage modélise la relation est-un : un Circle est un Shape. La composition modélise la relation possède-un : un Car possède un Engine.

Une classe composée

Avec la composition, vous stockez un auxiliaire dans un champ et lui déléguez le travail au lieu d’en hériter.

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

Déléguer un comportement

La classe extérieure transmet les appels à son objet interne. Cette délégation réutilise la logique sans aucun héritage.

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

Le problème de la classe de base fragile

Un héritage profond est fragile. Une modification dans un parent peut casser silencieusement des sous-classes éloignées, dans un piège appelé la classe de base fragile.

La flexibilité à l’exécution

La composition vous permet de remplacer l’objet interne quand vous le souhaitez. L’héritage est fixé une fois pour toutes, mais un champ peut changer.

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

Associer la composition aux interfaces

Associez la composition aux interfaces : dépendez d’un type Engine abstrait afin que tout moteur compatible s’intègre proprement.

abstract class Engine {
  void ignite();
}

Plus facile à tester

Comme les parties sont des objets distincts, vous pouvez en fournir un faux pendant les tests. La composition rend la simulation simple et naturelle.

var car = Car(FakeEngine());

Éviter d’hériter des mauvais éléments

Les sous-classes héritent de chaque membre, même de ceux qu’elles ne devraient pas exposer. La composition ne partage que ce que vous choisissez de déléguer.

Quand l’héritage reste préférable

L’héritage convient à une relation claire est-un avec une identité commune. Choisissez la composition lorsque la relation est réellement possède-un.

La règle pratique

Privilégiez la composition par défaut et utilisez l’héritage avec modération. Vos conceptions restent ainsi faiblement couplées et faciles à modifier plus tard. 🧩

Vérification rapide

Une question rapide sur la composition.

Récapitulatif

La composition modélise possède-un en conservant d’autres objets et en leur déléguant le travail. Elle reste flexible et facile à tester, tandis que l’héritage convient aux relations est-un claires. 👍

Questions Fréquemment Posées

La leçon « La composition plutôt que l’héritage » est-elle gratuite ?

Oui — le texte complet de « La composition plutôt que l’héritage » 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 « La composition plutôt que l’héritage » ?

Privilégier les conceptions de type « possède » lorsqu’elles conviennent 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 « La composition plutôt que l’héritage » ?

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

  1. Classes et méthodes abstraites
  2. Interfaces implicites et implements
  3. Polymorphisme grâce aux types partagés
  4. La composition plutôt que l’héritage
← Retour à Dart Academy