Trait (abstract type)
From Wikipedia, the free encyclopedia
Traits are a type of abstract type, used as a "simple conceptual model for structuring object oriented programs."[1]. Traits are similar to mixins, but may include definitions for class methods. Traits were proposed for inclusion in Smalltalk, and are found in Perl 6 and Scala. And "module mixins" in Ruby is like traits in some degree.
Traits have initiall been developed at the Software Composition Group, University of Bern.