OO
traditionnelles, un autre moyen courant de créer des classes à partir de composants réutilisables consiste à les construire en combinant des classes partielles plus simples.
Vous connaissez peut-être l'idée de mixins
ou de traits
pour des langues telles que Scala
, et le motif a également acquis une certaine popularité dans la communauté JavaScript
.mixins
dans TypeScript
.
Après le code, nous allons décomposer comment cela fonctionne.mixins
.
Vous pouvez voir que chacun se concentre sur une activité ou une capacité particulière.
Nous les mélangerons plus tard pour former une nouvelle classe à partir des deux capacités.mixins
.
Regardons cela plus en détail pour voir comment cela fonctionne :extends
, nous utilisons implements.
Cela traite les classes comme des interfaces et utilise uniquement les types derrière Disposable
et Activable
plutôt que la mise en oeuvre.
Cela signifie que nous devrons fournir l'implémentation en classe. Sauf que, c'est exactement ce que nous voulons éviter en utilisant mixins
.mixins
.
Cela satisfait le compilateur que ces membres seront disponibles au moment de l'exécution.
Cela nous permet d'obtenir le bénéfice des mixins
, avec toutefois quelques frais généraux de comptabilité.mixins
dans la classe, créant ainsi l'implémentation complète.mixins
et les copier sur la cible des mixins
, en remplissant les propriétés de remplacement avec leurs implémentations.