Salve, salve, galera do GUJ.
Estou desenvolvendo um projeto JSP+Servlets, e estou tentando aplicar os conceitos MVC para camada de apresentação (essa parte está, ok, utilizando diversos Core J2EE e GoF Design Patterns) e gostaria de tentar implementar os conceitos DDD para a camada model.
Li alguns posts, (enooormes! rs) e ainda não vi nenhuma solução para a minha dúvida, por isso estou postando. (Mas se alguem lembrar de algum post, pode me passar o link? rs!). Tenho uma dúvida que deve ser bastante simples para o mais experientes nessa técnica, que é o seguinte:
Em um sistema de eventos, um novo visitante (que é uma pessoa) pode se inscrever em um determinado evento. Esta ação deve cadastrar a pessoa e associa-la a um evento.
De acordo com o pouco que eu conheço de DDD, o repositório de pessoa armazena e recupera as pessoas e o de eventos armazena e recupera os eventos. Isso está, ok. E segundo o mais pouco ainda que eu sei sobre POO, o visitante deve se inscrever no evento, pois é isso que acontece no mundo real, correto?
Minha dúvida é se posso colocar esses repositórios dentro da entidade Pessoa, sendo acionado por um método do objeto visitante (que é uma pessoa), como por exemplo:
Pessoa visitante = new Pessoa();// é hard só para exemplo, ok?
visitante.seInscreverEmEvento(evento); //e dentro desse método eu aciono o repositório de pessoa e o de eventos.
Ou seria melhor colocar essa ação no meu Serviço de controle de eventos? Algo como:
gestorDeEvento.inscrever(visitante, evento);
/*
lembrando que nesse momento o Repositório de Pessoas deve ser acionado para guardar a nova pessoa.
Ou seja, deverei ter o repositório de pessoa dentro do serviço de controle de eventos.
*/
Alguma dessas abordagens esta adequada?
A dúvida apenas surgiu pq, pelo meu entendimento, um visitante se inscreve em um evento e não vejo, nesse caso, a necessidade de ter um serviço no meio (ta correto?).
Tenho outras dúvidas, mas por enquanto isso me faria avançar.
Agradeço antecipadamente e fico no aguardo!
Rogério.