none
Duvida com Repositório e Dominio no DDD RRS feed

  • Pergunta

  • Boa tarde,

    Atualmente estou em um projeto e estamos adotando DDD no mesmo porem algumas duvidas surgiram.

    1. Um domínio pode ter uma interface de repositório para auxilo de suas regras de negócio?
    2. Tendo uma interface de um repositório no domino isso acaba me permitindo que o próprio domínio se salve na base, isso é correto?
    3. Seguindo o DDD a 'risca' as validações de preenchimento de campo devem ficar no domínio ou no serviço que chama os métodos do domínio?

    Tenho lido sobre o assunto mas tenho tido dificuldades em encontrar exemplos práticos sobre o assunto.

    Agradeço pela atenção.

    quarta-feira, 21 de janeiro de 2015 18:02

Todas as Respostas

  • Tem um tópico, aberto anteriormente, que talvez lhe ajude

    https://social.technet.microsoft.com/Forums/pt-BR/121afcb9-9232-49b1-94a6-33055d4fa1d9/duvidas-em-relao-ao-ddd?forum=arquiteturapt

    Espero ter ajudado, se útil, por favor classifique.


    João Carlos Xavier de Macedo Specialist Platforms Microsoft MCP,MCT,MCSA,MCTS,MCITP, ENTERPRISE VIRTUALIZATION WINDOWS SERVER 2008 R2,MCSE WINDOWS SERVER 2012

    quarta-feira, 21 de janeiro de 2015 18:06
  • Sim, ele atende a primeira pergunta porem tinha outras duas não consegui resolver...
    quarta-feira, 21 de janeiro de 2015 18:07
  • Oi William,

    Vamos lá...

    Interfaces podem ser usadas no domínio para representar serviços que ele precisará e que precisaram de alguma tecnologia para funcionar. O caso mais clássico é o acesso a dados, onde a necessidade é de domínio, mas a implementação é de Infra.

    O domínio tem a necessidade de persistir seu estado. O que ele não pode é saber fazer isso diretamente. Quando você implementa o padrão repositório, abstraindo a implementação do domínio com uma interface, ele não saberá COMO a operação é realizada. O que garante o isolamento que o domínio precisa.

    Sobre as validações, seguindo o que a POO diz, você deve declarar no construtor quais são os parâmetros obrigatórios do seu tipo. Pense no tipo DateTime, por exemplo. Você consegue criar uma Data inválida? Não. Seus tipos de domínio também não deveriam permitir. Dito isso, entenda que as validações de domínio e interface são parecidas, mas tem funções diferentes. O domínio tem que garantir o seu funcionamento, independente da interface que está sendo utilizada.

    Espero ter ajudado.

    Abraços!

    Denis Ferrari
    http://www.azys.com.br/

    sábado, 31 de janeiro de 2015 02:59