Я прочитал статью о DDD о том, что Aggregate должен отвечать за создание или обновление Aggregate Root Child. Моя единственная проблема в том, что если дочерний агрегат имеет много свойств.
Что я обычно делаю, так это:
public class Parent
{
public Child Child1{ get; protected set; }
public void SetOrUpdateChild(string prop1, string prop2, string prop3, string prop4, string prop5, string prop6, string prop7, string prop8, string prop9, string prop10)
{
Child1 = Child.Create(prop1, prop2, prop3, prop4, prop5, prop6, prop7, prop8, prop9, prop10);
}
}
public class Child
{
public Child(string prop1, string prop2, string prop3, string prop4, string prop5, string prop6, string prop7, string prop8, string prop9, string prop10)
{
Prop1 = prop1;
Prop2 = prop2;
Prop3 = prop3;
Prop4 = prop4;
Prop5 = prop5;
Prop6 = prop6;
Prop7 = prop7;
Prop8 = prop8;
Prop9 = prop9;
Prop10 = prop10;
}
public string Prop1 { get; protected set; }
public string Prop2 { get; protected set; }
public string Prop3 { get; protected set; }
public string Prop4 { get; protected set; }
public string Prop5 { get; protected set; }
public string Prop6 { get; protected set; }
public string Prop7 { get; protected set; }
public string Prop8 { get; protected set; }
public string Prop9 { get; protected set; }
public string Prop10 { get; protected set; }
public static Child Create(string prop1, string prop2, string prop3, string prop4, string prop5, string prop6, string prop7, string prop8, string prop9, string prop10)
{
return new Child(prop1, prop2, prop3, prop4, prop5, prop6, prop7, prop8, prop9, prop10);
}
}
Есть ли лучший способ сделать это? Я знаю, что могу просто передать объект Child методу AddChild, но я думаю, что это не идеальный способ. Меня беспокоит то, что будет трудно управлять, если объект Child растет.