Frage zu Traits



  • In Wikipeida steht zu Traits:

    Ein Trait 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 Programmiersprache Self 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.

    Kann mir wer näher erläutern was mit: "Traits erlaubt das horizontale Wiederverwenden einer Methodensammlung" gemeint ist?



  • horizontal beschreibt die aeussere Form einer Schnittstelle, vertikal die Funktionsweise.
    Traits einheitliche Definition einer Schnittstelle und eine (bessere) Alternative zu Type erasure.

    In C++ wird es nicht direkt unterstuetzt, aber dennoch verwendet, indem z.B. einheitliche Iteratoren angeboten werden, auch wenn es voellig unterschiedliche Typen sind und man sie im Gegensatz zu Java auch nicht zu einer gemeinsamen Iterator-Klasse casten kann.



  • Danke, jetzt blicke ich bei der Definition durch.


Anmelden zum Antworten