Trait
Un trait définit un ensemble de méthodes pour un comportement partagé ; les types implémentent le trait pour fournir ces méthodes — le mécanisme d'interface et d'abstraction de Rust/Scala.
Objectif
Définir des interfaces de comportement partagé, en privilégiant la composition sur l'héritage.
Mécanisme
Un trait déclare des signatures de méthodes (éventuellement avec implémentations par défaut). Les types font impl Trait pour fournir les corps. Les bornes de trait contraignent les types génériques. Les trait objects (dyn Trait) permettent la répartition dynamique. Les supertraits fournissent l'héritage.
Cas d’usage
- Programmation en Rust
- Abstraction d'interfaces
- Contraintes génériques