2009-09-17 3 views
45

저장소와 서비스의 차이점은 무엇입니까? 나는 그것을 파악하는 것 같지 않습니다.저장소와 서비스의 차이점은 무엇입니까?

저는 데이터 액세스 레이어를 통해 데이터 액세스를 이야기합니다. 일반적으로 linq를 SQL에 연결합니다.

매우 자주 CRUD 메소드가있는 리포지토리와 더 구체적인 비즈니스 방법이있는 서비스를 볼 수 있습니다.

예를 들어 this 블로그 게시물을 가져올 수 있습니다. 하단 (이미지)의 인터페이스를 보면 그는 2 개의 저장소와 2 개의 서비스를 가지고 있습니다. 무엇을 놓을 지 어떻게 알 수 있습니까?

내가 말했듯이 리파지토리는 CRUD와 유사한 운영 및 서비스에있어 더 많은 비즈니스 지향적 인 것으로 보입니다.

감사

+0

당신은 calarify 할 수 있습니까? 어떤 맥락에서? 대부분의 단어와 마찬가지로이 단어들이 사용되는 맥락은 의미를 정의하는 데 도움이됩니다. – David

+2

참고 : 웹 서비스 또는 여기에 대해 언급하지 않았습니다. 데이터 영역을 통한 데이터 액세스에 대해 말하고 있습니다. – alexn

답변

45

이 저장소는 기본적으로 컬렉션 스타일의 의미를 사용 지속성의 외관입니다 (추가, 업데이트, 제거) 데이터/개체에 대한 액세스를 제공합니다. 이것은 응용 프로그램의 나머지 부분에서 데이터/객체를 저장하는 방식을 분리하는 방법입니다.

서비스는 응용 프로그램을 작동시키는 데 필요한 조정 또는 기타 "서비스"를 제공합니다. 서비스는 일반적으로 지속성에서 데이터에 액세스하는 방법을 알지 못하며 매우 일반적으로 저장소가 인 모든 서비스에 대한 데이터/개체에 액세스한다는 점에서 매우 다릅니다.

+5

Repository는 데이터 액세스에 사용되는 서비스 유형이라고 말할 수 있습니다. –

+1

우리가 작성하는 거의 모든 것이 어떤 수준에서는 "서비스"라는 의미에서 훌륭한 정의이지만, 저장소가 객체의 * collection *으로 간주되는 기본 의도를 잃어버린다. – jlembke

+2

단위 테스트를 수행하는 경우 저장소를 데이터베이스를 피하기 위해 필요한 조롱을 최소화하는 최소한의 추상화로 생각하는 것이 더 명확 할 수 있습니다. –

9
(있을 경우 더 많은 컨텍스트를 제공 할 때까지) 나는 일반적인 의미에서 첫 번째 시도로 말할 것

: 당신은 몇 가지 전역 개체를 두는 곳

  • 저장소입니다 , 나중에 사용할 수 있습니다.
  • 서비스는 비즈니스 로직 코드가 명시 적으로 만든 (그리고 이상적으로 프리젠 테이션 층 분리 및 데이터베이스 계층을?)
70

저장소는 데이터가 저장되는 곳입니다. 이 서비스는 데이터를 조작하는 것입니다.

실제 상황 비교에서 돈이 은행의 저장소에 저장되어 있으면 저장소가 저장소입니다. 입금, 인출 등이 서비스입니다.

+2

이 답변을 주셔서 감사합니다! 간단하고 간결합니다. – alexn

+0

위의 의견에 동의! 실세계의 설명도 좋아합니다! – Kleigh

관련 문제