Есть предложения по чистым способам решения этой проблемы дизайна?
public class Task
{
public User Assignee
public User Assigner
}
public class User
{
public string Name
}
Таким образом, у задачи есть два пользователя. Но теперь мы хотим добавить поддержку групп ...
public class Group
{
public string Name
public IEnumberable<User> Users
}
И мы хотим, чтобы задача была в состоянии обработать группу в качестве Цессионария
public class Task
{
public User/Group Assignee
public User Assigner
}
Когда я думаю о наследовании здесь. Группа "это тип" Пользователь не соответствует этому LSP, потому что Группа "не может быть заменена на" Пользователь
Я использую Entity Framework (сначала модель).