Diferença entre repositório e serviço?

Qual é a diferença entre um repositório e um serviço? Não consigo entender.

Estou a falar de acesso de dados através de uma camada de acesso de dados, normalmente com linq para sql.

muitas vezes vejo repositórios com métodos simples e grosseiros, e serviços com métodos mais específicos para as empresas.

Nós podemos tomar este post blog como um exemplo. Se você olhar para as interfaces na parte inferior (imagens), ele tem dois repositórios e dois serviços. Como se sabe o que fazer Pôr onde?

Como eu disse, repositórios parecem ser mais para Operações e serviços mais orientados para negócios.

Obrigado.
Author: Andrejs, 2009-09-17

3 answers

Um repositório é essencialmente uma fachada para persistência que usa semântica do estilo de recolha (adicionar, actualizar, Remover) para fornecer acesso a dados/objectos. É uma forma de dissociar a forma como você armazena dados/objetos do resto da aplicação.

Uma coordenação de fornecimentos de serviços ou outros "serviços" que são necessários para operar a sua aplicação. Eles são muito diferentes em que os Serviços normalmente não sabem como acessar dados a partir de persistência, e repositórios tipicamente apenas Acesse dados / objectos para quaisquer serviços que possa ter.

 53
Author: jlembke, 2009-09-17 17:22:56

O repositório é onde os dados são armazenados. O serviço é o que manipula os dados.

Numa comparação do mundo real, se o seu dinheiro for armazenado num cofre num banco, o cofre é o repositório. O caixa que deposita, retira, etc.é o serviço.
 91
Author: David, 2009-09-17 17:23:22

Eu diria como uma primeira tentativa, no sentido geral (até que você dê mais contexto se você tem um):

  • um repositório é onde você coloca alguns objectos globais, para serem usados mais tarde.
  • a service is a business logic code, made explicit (and ideally separated from the Presentation layer, and database layer ?)
 9
Author: KLE, 2009-09-17 17:03:47