Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Trait (programmation) — Wikipédia
Trait (programmation) — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Trait.

Un trait est une sous-classe abstraite, un modèle conceptuel pour structurer des programmes orientés objets.

C'est un ensemble de méthodes concrètes ou fonctions, pouvant être ajouté à une classe pour étendre ses fonctionnalités.

Quand un langage de programmation supporte les traits, il permet la résolution explicite des conflits qui apparaissent quand une classe utilise deux traits qui ont des méthodes qui portent le même nom (contrairement aux mixins[1]).

Les traits ne sont pas des types abstraits car ils ne capturent pas l'essence de l'objet mais celle de ses propriétés et méthodes[2],[3].

Implémentations

[modifier | modifier le code]
  • Les traits proviennent du langage Self en 1982[à vérifier][4].
  • Java inclut cette fonctionnalité depuis sa version 8 sortie en mars 2014 introduisant la fonctionnalité des méthodes par défaut.
  • Scala inclut cette fonctionnalité[5].
  • PHP les propose depuis sa version 5.4[6].
  • Rust propose cette fonctionnalité et l'utilise dans l'implémentation de sa bibliothèque standard[7].
  • C++: les propose dans la STL et Boost
  • Les traits sont proposés pour inclusion dans Smalltalk.
  • Les traits sont proposés pour inclusion dans Fortran 202Y[8], qui succédera à la norme Fortran 202X attendue en 2023.

Par ailleurs, 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.

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]
  1. ↑ (en) Rachid Guerraoui, ECOOP '99 : Object-Oriented Programming : 13th European Conference Lisbon, Portugal, June 14-18, 1999 Proceedings, Springer, 31 juillet 2003 (lire en ligne)
  2. ↑ (en) Harold S. Stone, 1986 proceedings, IEEE Computer Society Press, coll. « Association for Computing Machinery, IEEE Computer Society », 1986 (lire en ligne)
  3. ↑ (en) Peter Gutmann, Cryptographic Security Architecture : Design and Verification, Springer Science & Business Media, 8 mai 2007 (lire en ligne)
  4. ↑ (en) G. Curry, L. Baer, D. Lipkie, and B. Lee, Traits : An approach to multiple-inheritance subclassing. In SIGOA conference on Office Information Systems, pages 1–9, Philadelphia, Pennsylvania, USA, ACM Press, 1982
  5. ↑ (en) « Traits » : « traits are used to define object types by specifying the signature of the supported methods. »
  6. ↑ (en) « Traits » : « As of PHP 5.4.0, PHP implements a method of code reuse called Traits. »
  7. ↑ (en) « Traits » : « A trait is a language feature that tells the Rust compiler about functionality a type must provide. »
  8. ↑ (en) « fortran_proposals/20-109.txt at master · j3-fortran/fortran_proposals », sur GitHub (consulté le 18 septembre 2021)

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • Interface (programmation orientée objet)

Liens externes

[modifier | modifier le code]
  • (en) Traits - Composable Units of Behavior sur Software Composition Group (université de Berne)
  • (en) Proposition d'implémentation en PHP
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Trait_(programmation)&oldid=211202657 ».
Catégories :
  • Théorie des types
  • Programmation orientée objet
Catégories cachées :
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id