Padrão camadas (controller, serviço, Acesso a dados)
Atualizado
Atualizado
Organizando a aplicação em camadas com responsabilidades definidas (uma forma de reestruturar o sistema), deixando o mesmo em um estado de fácil manutenção.
Consiste em organizar os COMPONENTES do sistema em partes denominadas camadas;
Componentes entenda por SERVICE, ProductService, ClientService, objetos que fazem funções/operações. Entidades como Produto, Pedido não entram nesse quesito.
Cada camada possui uma responsabilidade específica;
Na hora de realizar alguma manutenção, trocar qualquer coisa já sabemos onde aquilo estará pois fizemos a devidade separação das camadas;
Componentes de uma camada só podem depender de componentes da mesma camada, ou da camada mais abaixo, veja:
Controladores conversam com a camada de Service através de DTO.
Por sua vez, camada de Service conversa com a camada de acesso a dados através de Entidades (Product, Category, User).
Portanto, resumindo a imagem:
Na camada de acesso a dados as entidades estarão devidamente mapeadas para conversar com a camada de Service.
Para a camada de serviço conversar com a de Controle, as entidades mapeadas serão convertidas em DTO.
TRANSAÇÃO
Tudo que for transação, ou seja, acesso a banco de dados sera resolvido na camada de serviço com acesso a dados.