Hi,
In the context of DDD setters on a domain model are a code smell.
They should be avoided for the simple reason that they are not really part of the domain. There are no nouns in it that a Domain Expert may understand and changes to the data should go through specific methods instead.
Example:
customer.StreetName = ...
customer.C...
What is the difference between Domain Model and data model?
...
I have a Client object which will either have a Person object or Organization object in it. These Person objects or Organization objects might have relations to other objects independent of the Client object. In this case should I use a General Aggregation association between Client -> Person and Client -> Organization where the Client o...