Application ModelDomains

Application model domains are defined in terms of a "fundamental" datatype (string, integer etc.), or another domain. They have application-specific type names such as "SOCIAL_SECURITY_NUMBER" or "PAYMENT_AMOUNT" , and collectively form a tree called the "domain hierarchy".

Domains can have associated validations like UPPERCASE, range checks, code tables, pattern matches or custom validations. Attributes of entities and value objects are specified as domains.

The following illustrates the inheritance hierarchy of domain classes starting at a point called "root", with each lower-level, indented bullet inheriting from the preceding higher level: