Trait (type abstrait)
Un article de Wikipédia, l'encyclopédie libre.
Un trait est un type abstrait, « simple modèle conceptuel pour structurer des programmes orientés objets ».
Les traits sont similaires aux mixins, mais peuvent inclure des définitions pour des méthodes de classe.
Sommaire |
Implémentations [modifier]
Scala inclut cette fonctionnalité, de même que PHP depuis sa version 5.4[1]. Et les "mixins de module" de Ruby sont comparables aux traits dans une certaine mesure. De même le rôle en Perl 6 est une fonctionnalité inspirée du concept de trait.
Les traits sont proposés pour inclusion dans Smalltalk.
Exemple [modifier]
L'exemple d'utilisation suivant en PHP montre une meilleure granularité des traits en comparaison d'un héritage multiple :
trait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo ' World'; } } class MyHelloWorld { use Hello, World; public function sayExclamationMark() { echo '!'; } } $o = new MyHelloWorld(); $o->sayHello(); $o->sayWorld(); $o->sayExclamationMark();
Notes et références [modifier]
Voir aussi [modifier]
Articles connexes [modifier]
Liens externes [modifier]
- (en) Traits - Composable Units of Behavior sur Software Composition Group (université de Berne)
- (en) Proposition d'implémentation en PHP