|Description: Sometimes a DCI (Data, Context and Interaction) Role is defined, which may need to be specialised. Every specific implementation has the same interface (the same role methods), so they can be considered the same role, just with different implementation details. The choice of specific role is made by the context during the assembly of data and assignment of roles. It is usually based upon attributes of the data. In such cases, the specialised role can be useful. In this design idea, the context deals with an abstract role, but knows how to specialise it, based on the data which needs to play the role.