Я внедряю DDD в свой проект, и у меня есть модель с именем event
(как на дне рождения, вечеринке и т. Д.).
У события есть дата начала и окончания, поэтому есть модель, такая как:
public class Event
{
private DateTime _startDate;
private DateTime _endDate;
// methods omitted for brevity
}
Пока все хорошо, и я доволен этим.
Теперь в пользовательском интерфейсе раздела, который показывает даты начала и окончания, пользователь может выбрать цвет фона. Это может быть добавлено как:
public class Event
{
private DateTime _startDate;
private DateTime _endDate;
private Color _dateColor;
}
И это может повторяться много раз для каждого раздела пользовательского интерфейса (раздел местоположения может иметь цвет и т. Д.).
Мне кажется, что в домене не должно быть определенных значений пользовательского интерфейса, но тогда, где еще я могу сохранить это?
Я также беспокоюсь о загрязнении домена всеми этими дополнительными полями, поэтому могу сделать что-то вроде:
public class Event
{
public EventDates EventDates { get; private set; }
}
public class EventDates
{
private DateTime _startDate;
private DateTime _endDate;
private Color _dateColor;
}
Но тогда возникает ощущение, что такие вещи, как дата начала / окончания, не должны быть в под-сущности, они являются ядром фактического события.
Есть мысли?