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
- Classes et méthodes abstraites
- Interfaces implicites et implements
- Polymorphisme grâce aux types partagés
- La composition plutôt que l’héritage