Relationships Architectural Pattern
This is the sixth in series of related architectural patterns. The others, in order, are :
Intent
Provide an explicit description of the relationships between entities.
Problem
The relationship between entities in a system is often implicit. That is: knowledge about a relationship is often localized to the entities that have a relationship and is not visible outside of those entities. This makes it difficult to change the relationships and difficult for an outside entity to use the relationship for its own purposes.
One way in which this could be solved would be for each entity to expose its relationships, but this is not usually the reason for the entities existence and thus should not form part of that entities interface.
In addition, in any given problem domain there may be multiple ways of categorizing and grouping the same entities to achieve different business ends. Clearly it would be infeasible to expect entities to be able to model any possible set of relationships.






