I need some advice on modeling the following movies domain. I have a person entity. This person can be an Actor, Director, Producer and Writer and will often be all. I don't want to dup data in each entity so feel it best to create an abstract base class called Person that each of the Director, Actor and Writer classes inherit from. This has started to smell a when I look at the following test:
[Test] public void Can_Do_It()
{
var actor = new Actor("Clint Eastwood");
var director = //?? Can new it up as he already exists as actor }
Is it more preferable to have a Person Class and then have Classes like Writer that take in an instance of person i.e.
public class Writer(Person person, string attribute1, string attrribute2) {...}