MixRig anti-pattern
- Full name
Mixin With Same Rigidity
- Type
Classification; Scope
- Feature
Hierarchy; Mixin
- Description
A class stereotyped as «Mixin» specialized only by other classes that have the same rigidity property, i.e., are all rigid or all anti-rigid.
- Justification
As all non-sortals, mixins aggregated individuals that follow different identity principles. Its distinguishing characteristic, though, is that is semi-rigid, i.e., it behaves as a rigid type for some individuals as an anti-rigid for others. This anti-pattern analyzes mixins that, despite their capabilities, only generalize types with the same rigidity.
- Contraints
- Examples
- Refactoring Plans
[conditional] [Mod] Change mixin to category: if all subtypes are rigid, and no anti-rigid subtype is expected to specialize «Mixin», change the stereotype to «Category».
[conditional] [Mod] Change mixin to roleMixin: if all subtypes are anti-rigid, and no rigid subtype is expected to specialize «Mixin», change the stereotype to «RoleMixin».
[Mod] Change subtypes stereotypes: this solution is a recognition that the semi-rigidity of «Mixin» is correct and consists in changing the stereotype of one or more subtypes of «Mixin» to properly characterize the semi-rigidity.
[New/Mod] Add subtypes: set new or existing types as direct children of «Mixin» in order to properly characterize the semi-rigidity.
References:
Prince Sales, Tiago. (2014). Ontology Validation for Managers.