Pergunta

Eu tenho os seguintes objetos:

Pessoa <- Contato-> Clientsperson <- Cliente

Estou usando o padrão de repositório com uma camada de serviço. Mas já aqui, sendo perfeccionista, estou perdido!

Eu também tenho um service, clientes e tenho certeza de que preciso ter um serviço de contatos que deve ligar para o persevice.

O trabalho é adicionar um contato. O contato teria um objeto de pessoa relacionado e um objeto do cliente. E que os clientes do OFC. ter um cliente.

Para onde os diferentes trabalhos devem ir? Ouvi dizer que é ruim chamar um serviço/repositório de um para outro.

Foi útil?

Solução

Esta resposta depende do seu ORM e de como ela em cascata salva. Assumiremos que você não está usando um ORM que as mudanças em cascata.

Os métodos da camada de serviço devem refletir as ações que você precisa realizar com um senso comercial. Freqüentemente, acho que minhas ações do controlador correspondem muito de perto aos métodos de serviço.

No seu exemplo, eu faria o serviço construir e me relacionar com as entidades necessárias e conversar com os repositórios para salvá -los; Dessa forma, se houver um problema ao longo do caminho de conversar com os repositórios, ele poderá reverter e fazer qualquer limpeza necessária.

Os repositórios devem ser relativamente burros. Os serviços devem fazer o trabalho e o trabalho de negócios (exceto algo como Nib, e talvez até então).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top