В дизайне, управляемом доменом, рекомендуется использовать фабрики для создания объектов домена на уровне домена (в отличие от использования прямого конструктора или IoC).
Но как насчет использования фабрик доменных объектов на уровне докладчика? Например, предположим, что я создавал объект домена из пользовательского ввода, полученного от докладчика.
Вот пример, скажем, у меня есть объект домена конфигурации, который имеет несколько десятичных настроек.
открытый класс Конфигурация: PersistantObject {
public decimal temperature {get;set;}
...(times 20)
public decimal gravity {get;set;}
}
Чтобы создать этот объект на уровне домена, а не на уровне докладчика, мне пришлось бы передать каждое из этих десятичных значений в качестве параметров функции. Создание громоздкого определения и вызова функции.
т.е. ConfigurationService.CreateConfiguration (температура, ... (x20), сила тяжести);
Возможно, лучшим решением было бы создать объект конфигурации на уровне презентатора и назначить все значения объекта конфигурации непосредственно из пользовательского ввода, пропуская длительный вызов функции.
Конфигурация config = ConfigurationFactory.CreateNewConfiguration ();
config.temperature = температура;
..(x20).. = ...;
config.gravity = гравитация;
ConfigurationService.SaveNewConfiguration (конфигурация);
Но мне интересно, ошибочен ли этот подход и почему? Если оба этих подхода неверны, каков наилучший подход для создания длинного объекта из пользовательского ввода и почему?
Спасибо!