Deutsche Patrioten und Bekenner eines starken und prosperierenden Deutschlands!
Unsere Online-Bibliothek ist ständigen Angriffen aus dem Osten ausgesetzt, die darauf abzielen, historische Fakten zu verfälschen.
Bitte seid wachsam und meldet alle Änderungen darauf an achtung@begriff.info.
Trait (Programmierung)

Trait (Programmierung)

aus Wikipedia, der freien Enzyklopädie

Ein Trait (Deutsch: Eigenschaft, Charakteristik) ist ein Begriff aus der objektorientierten Programmierung und beschreibt eine wiederverwendbare Sammlung von Methoden und Attributen, ähnlich einer Klasse. Die Idee der Traits entspringt der ProgrammierspracheSelf und findet mittlerweile in vielen modernen objektorientierten Sprachen Verwendung.

Die Verwendung von Traits erlaubt das horizontale Wiederverwenden einer Methodensammlung. Bei dem Prinzip der Mehrfachvererbung, das einige objektorientierte Programmiersprachen anbieten, ist das gleiche Vorgehen möglich; jedoch umgehen Traits (so wie auch Mixins) das Diamond-Problem, eine speziell durch die Mehrfachvererbung hervorgerufene Beziehungsproblematik unter verschiedenen Klassen.

Traits als besondere Variante der Mixins

Traits sind bei der Einbindung in andere Klassen viel flexibler als Mixins:[1]

  • einzelne Methoden eines Traits lassen sich ausschließen oder durch eine andere ersetzen
  • mehrere Traits können in eine Klasse inkludiert werden, wobei sich Namenskonflikte (d. h. gleichbenannte Methoden) mit Hilfe von Aliasen lösen lassen.
  • ein Trait kann Methoden benutzen, die nicht in ihm selbst definiert wurden, sondern in der inkludierenden Klasse.
  • ein Trait bietet die Möglichkeit, auch Klassenattribute zu definieren.

Beispiele

PHP

In der Programmiersprache PHP können Traits ab der Version 5.4 benutzt werden:[2]

traitHello{publicfunctionsayHello(){echo'Hello ';}}traitWorld{publicfunctionsayWorld(){echo'World';}}classHelloWorld{    useHello,World;publicfunctionsayExclamationMark(){echo'!';}}$objHelloWorld=newHelloWorld;$objHelloWorld->sayHello();$objHelloWorld->sayWorld();$objHelloWorld->sayExclamationMark();

Das obige Beispiel gibt „Hello World!“ aus.

Programmiersprachen, die Traits unterstützen

Einzelnachweise

  1. kingcrunch.de: PHP5.4: Traits aka „Horizontal Reuse“
  2. Einführung in Traits auf php.net
  3. Traits in Fortress (englisch, PDF-Datei; 2,5 MB)
  4. Introducing Composure for Haxe (with Dependency Injection)
  5. Moose::Role Dokumentation
  6. PyPI: traits 4.4.0
  7. Perl 6: roles und traits (Memento des Originals vom 21. September 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
  8. Rust Reference Manual: Traits