Skip to content
Connecter les besoins aux solutions

Tout est dans le « mixins »

Tags: ,

Une des fonctionnalités que j’aime bien dans Ruby est le « mixins » qui permet d’inclure des bloques de fonctionnalités à l’intérieur d’une classe. En gros, plutôt que d’essayer d’obtenir de l’héritage multiple on peut classer les différentes facettes de
son code à l’intérieur de modules que l’on recombine dans les classes. Hum… ça sonne bien en théories mais qu’est-ce que ça donne vraiment en pratique… Voici un exemple que vous avez déjà utilisé:

texte1 = « aaa » texte2 = « bbb » texte3 = « aaa » puts « #{texte1} > true puts « #{texte1} > true puts « #{texte2} > false

La class String ne définit pas la méthode <=. Cette dernière provient du module Comparable. Ce même module est inclus par d’autres classes (par exemple: Date et Numeric). Qu’est-ce que ça me donne? À mon sens, une meilleure implémentation puisque si le code nécessaire pour établir une fonctionnalité est réutilisable vous pouvez alors le réutiliser dans autant de classes que vous pourrez. Allez-y… jetez un coup d’œil dans les librairies de Ruby, vous serez surpris du nombre de Mixins qui s’y trouve.
Jean-Marc