A Domain Model, in Domain Driven Design, is an abstract representation of a scoped subset of reality. It describes a specific idea / thing that the design discusses. It considers the components, relationships and behaviors of what it describes. A Domain Model is a tool, with which people can build understanding and are able communicate with each other about abstract and complex things.
With increasing complexity of the thing that is being discussed the number of possible, equally valuable models rises. It is of utmost importance that people agree on the same Domain Model – or communication will be confused.
- A sufficient domain model can represent any relevant operation within the domain.
- A good domain model can easily and intuitively communicate above
- An ideal domain model cannot be further simplified