Tell-don’t-ask bundles data with the operations that use it. Clients tell an object to perform domain work instead of retrieving raw data and manipulating it themselves. section 7.2
The principle guides refactoring when a class performs work on another object’s data. Moving company logic into Company lets User delegate corporate-email checks and employee-count changes. section 7.2
From raw data to domain behavior
An application service first extracts companyDomainName and numberOfEmployees, then passes both into User.ChangeEmail. After refactoring, it constructs Company and calls user.ChangeEmail(newEmail, company); User asks Company whether the email is corporate and tells it to change its employee count.
