E aí pessoal!
Eu cheguei a colocar esta dúvida no stackexchange e numa lista de .net mas eu acho que aqui serei melhor compreendido (visto minhas limitações no inglês)
Resumidamente, neste sistema em que trabalho, (quase) toda a alteração na entidade envolve em ir na Infra e atualizar “de verdade” posteriormente.
Então quando eu ligo uma Machine, eu marco ela como ligada e crio Tasks (outras entidades) para que sejam consumidas por um windows service.
Atualmente eu uso services para isso, o que deixa meu domínio anêmico:
[code]public void createMachine(string name){
Machine machine = new Machine(name,Status.Releasing);
List tasks = new List(){
new Task(“CreateMachine”, machine.getName()), //infrastructure task
new Task(“ChangeMachineSize”, machine.getName(), machine.getFoo()), //infrastructure task
new Task(“ActivateMachine”, machine.getBar()), //infrastructure task
new Task(“SetMachineEntityStatusToReleased”, machine.getName()) //business task (go to my database)
session.save(tasks);
session.save(machine);
tx.commit();
}
}[/code]
Eu gostaria de deixar meu domínio mais rico, mas será que a criação destas tarefas não violaria o SRP?
[code]Public Class Machine{
public Machine(string name)
{
this. name = name;
this.status = Status.Releasing;
//Can I Create Tasks for create machine here?
}
public void Install(){
setStatus(Status.Releasing);
//or can I create Tasks for create machine here?
}
public void Stop(){
setStatus(Status.Stopped);
//Can I create Tasks for stop machine here?
}
@Required
@StringLength(50)
private String name;
private Status status;
}[/code]
O código era .net, então pode não estar 100% a sintaxe.