When the database is being designed, it is common to have attributes sharing very similar definitions, though no direct relationship can be established between them. For example, the design of your database may store different address attributes whose data types have been defined as character with a maximum character length of 30. This type of definition exists regardless of whether the address is used to represent Client Addresses or Supplier Addresses.
Then you can define an address domain as being a character type with a maximum character length of 30. When this is done, you can associate the client address and the supplier to it because they are attributes which comply with the Address Domain. So, if in the future, this Domain definition were to change, the change would automatically propagate to all attributes that belong to the Domain.
Because the use of Domains leads to a higher level of abstract application definition, it is recommended that all attributes be associated to a Domain definition.