DEV Community

Things that happen in relationships are the things that matter.

Kasey Speakman on August 07, 2019

You might assume I'm going to talk about fluffy philosophical things. But this is about designing solutions in code. It is a distilled version of c...
Collapse
 
aleksikauppila profile image
Aleksi Kauppila

Interesting read, thanks! In many cases you have to choose, which object will have more behaviour and which is more anemic. Student.attend(lesson), lesson.add(student). It feels very awkward most of the time.

Collapse
 
kspeakman profile image
Kasey Speakman

I believe that if it feels awkward, then probably there is a better way to model it. The key take-away here is that where there is confusion about which object in the relationship should host the "behavior", then probably the relationship should be its own object which hosts the behavior. Also that not all nouns are objects with behavior... sometimes they are just data.

Collapse
 
rhymes profile image
rhymes

Well said!