Re: DRY and cross domain logic

"Freek Paans [email protected] [domaindrivendesign]" <[email protected]> Fri, 22 May 2015 15:15:51 +0200
Newsgroups gmane.comp.programming.domain-driven-design
Message-ID <CA+f8E8Fga3VHw2kz_9OZ19fvXKcBfEoUtFTJj_1G4gOaRCNAdw@mail.gmail.com>
I would do either


1) Create an age class and treat it like framework code (ie share it
between BCs)
2) Implement it twice, since it's not exactly complicated and pretty stable.


-Freek


On Fri, May 22, 2015 at 2:31 PM, 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
>
>  
>