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