Re: DRY and cross domain logic
"Remy Fannader [email protected] [domaindrivendesign]" <[email protected]> Fri, 22 May 2015 15:05:43 +0200
| Newsgroups | gmane.comp.programming.domain-driven-design |
|---|---|
| Message-ID | <CAMdXxPD-adCdyrkGKFyuexGQ0eK2Lo-1ywZVSZkyKh_MoG7g7Q@mail.gmail.com> |
You should introduce parties, with reference to persons (roles as customer or patient) and organization (roles as customer only). https://caminao.wordpress.com/how-to-implement-symbolic-representations/patterns/business-patterns-2/parties/ Rémy On 22 May 2015 at 14:31, Tom Eugelink [email protected] [domaindrivendesign] < [email protected]> wrote: > > > We have a discussion in my current project group about the following: > - There are two bounded context. > - In each bounded context there is an person-alike entity, in one BC it is > Client in the other it is Patient, mostly with their own business logic and > methods specific to their roles. > - However, at some point Patient requires some determining logic that is > implemented in Client. For simplicity let's assume both have a > date-of-birth and the to-be-called logic is calculateAge(). > > This is not something that can be done with events, and because of DRY you > do not want to implement calculateAge() twice. What is the best option to > calculate the age of a patient? Client and Patient share a unique id, so > Patient knows which Client to get. (N.B. I seek a conceptual solution, not > one specific to the calculate age problem.) > > Tom > > >