in reply to Re^4: Informal Poll: why aren't you using traits?
in thread Informal Poll: why aren't you using traits?
"How are roles/traits different to interfaces?"
An interface (in the Java sense) has no implementation, it is only a "signature" which the consumer of the interface promises to conform to.
Roles/Traits are allowed to have implementations. The methods in a trait are "flattened" into the consuming class. This is not all that different from just "exporting" methods from the trait's namespace into the classes namespace, except that there are a set of "rules" and "guidelines" set out in the Traits papers (see the SEE ALSO section of Class::Trait for some good links). These rules and guidelines actually make it so that Trait ordering is irrelevant, which right there removes a lot of the issues normally associated with MI and mix-ins.
|
|---|