Trait

a set of methods, divorced from any class hierarchy pdf

Traits can be composed in arbitrary order. The composite entity (class or trait) has complete control over the composition and can resolve conflicts explicitly.

In their original form, traits were stateless, i.e., pure groups of methods without any attributes. Stateful Traits extend stateless traits by introducing a single attribute access operator to give clients of the trait control over the visibility of attributes.

A class or another trait is composed from traits and it retains full control of the composition being able to ignore or rename some methods of the traits it uses.

See *Create and use a new Trait*. github (pharo-wiki)

~

ANQUETIL, Nicolas, ETIEN, Anne, HOUEKPETODJI, Mahugnon H., VERHAEGHE, Benoit, DUCASSE, Stéphane, TOULLEC, Clotilde, DJAREDDIR, Fatiha, SUDICH, Jerôme and DERRAS, Mustapha, 2020. Modular Moose: A new generation software reverse engineering environment. Online. 22 November 2020. arXiv. arXiv:2011.10975. [Accessed 3 December 2022]. Available from: http://arxiv.org/abs/2011.10975 > Advanced reverse engineering tools are required to cope with the complexity of software systems and the specific requirements of numerous different tasks (re-architecturing, migration, evolution). Consequently, reverse engineering tools should adapt to a wide range of situations. Yet, because they require a large infrastructure investment, being able to reuse these tools is key. Moose is a reverse engineering environment answering these requirements. While Moose started as a research project 20 years ago, it is also used in industrial projects, exposing itself to all these difficulties. In this paper we present ModMoose, the new version of Moose. ModMoose revolves around a new meta-model, modular and extensible; a new toolset of generic tools (query module, visualization engine, ...); and an open architecture supporting the synchronization and interaction of tools per task. With ModMoose, tool developers can develop specific meta-models by reusing existing elementary concepts, and dedicated reverse engineering tools that can interact with the existing ones.arXiv:2011.10975 [cs]

~

Traits are pure units of Behavior that can be composed to form classes or other **traits**. The trait composition mechanism is an alternative to multiple or mixin inheritance in which **the composer has full control over the trait composition**. It enables more reuse than single inheritance without introducing the drawbacks of multiple or mixin inheritance. page