Pergunta

Estou correto ao pensar que o propósito de uma camada de serviço inclui o seguinte?

  • redução dos modelos de domínio (ou seja,movimento de certas funções, como cache, instanciação)
  • redução nas dependências de modelos de domínio
  • Minimização de API
Foi útil?

Solução

Em termos de design orientado a domínio, por exemplo, a camada de serviço de domínio é usada para operações que não podem ser definidas no contexto de seus objetos de domínio.Por exemplo, se você tiver um objeto CreditCard, uma operação adequada em sua camada de serviço seria Emitir um novo cartão de crédito.

Em aplicações maiores é usado o padrão Modelos de Domínio Anêmicos, onde os objetos de domínio são usados ​​apenas como contêineres de dados e toda a lógica de negócios está na sua camada de serviço de domínio (isso às vezes é chamado de antipadrão, mas pode ser muito útil em grandes soluções , com a adição de outra camada de abstração).

No entanto, em diferentes arquiteturas e padrões de soluções, a camada de serviço pode ter uma finalidade diferente.

Outras dicas

Tradicionalmente (quando não usa o design orientado ao domínio), a camada de serviço, ou 'camada de negócios', como também é chamada, é onde você codifica toda a lógica de negócios do seu aplicativo. Assim, por exemplo, em um aplicativo que lida com a concessão de empréstimos bancários, a camada de serviço é para onde vai o código que decide se um determinado empréstimo deve ou não ser concedido. Obviamente, a camada de serviço exigiria algumas informações sobre o requerente do empréstimo para poder tomar uma decisão sobre sua credibilidade. Para recuperar essas informações, a camada de negócios chama a camada de 'dados' ou 'repositório', que lida com a extração e armazenamento de informações no banco de dados.

A camada de serviço não lida com questões como persistência ou outras preocupações de infraestrutura.

Se o seu design for orientado a domínio, a resposta de Anthares será verdadeira.

A camada de serviço, como o nome sugere, fornece serviços que não são de responsabilidade direta de nenhum outro objeto de domínio.

A camada de serviço também auxilia na dissociação de responsabilidades.A camada de serviço forma a parte intermediária entre a camada de banco de dados/persistência e a camada Cliente/UI/Web.

Projetar adequadamente a camada de serviço permite que ela seja usada a partir de qualquer cliente, seja um cliente Web ou um serviço Web (SOA) ou dispositivo móvel.

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