Trait (type abstrait)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Trait.

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.

Implémentations[modifier | modifier le code]

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 | modifier le code]

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 | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]