Я хочу написать фабричный метод для создания экземпляра сущности, являющейся совокупным корнем.
Должен ли метод принимать агрегированные дочерние объекты и значения как созданные объекты или он должен принимать только примитивные типы?
Например, если бы у меня был сущностный компьютер, состоящий из процессора и объекта памяти, фабричный метод должен принять форму:
public Computer NewComputer(
string computerName,
int processorCores,
int processorClockSpeed,
string memoryType,
int memoryRam)
{
...
}
или
public Computer NewComputer(
string computerName,
Processor processor,
Memory memory)
{
...
}
Это только вопрос вкуса или здесь есть какие-то серьезные соображения?