[design-patterns] 저장소와 서비스의 차이점은 무엇입니까?

리포지토리와 서비스의 차이점은 무엇입니까? 나는 그것을 이해하지 못하는 것 같다.

저는 일반적으로 linq to sql을 사용하여 데이터 액세스 계층을 통한 데이터 액세스에 대해 이야기하고 있습니다.

매우 자주 간단한 CRUD 방법이있는 저장소와 더 많은 비즈니스 특정 방법이있는 서비스를 봅니다.

우리는이 걸릴 수 있습니다 예를 들어 블로그 게시물을. 하단의 인터페이스 (이미지)를 보면 두 개의 저장소와 두 개의 서비스가 있습니다. 어디에 무엇을 넣을지 어떻게 압니까?

내가 말했듯이 리포지토리는 CRUD와 유사한 운영 및 서비스에 대한 비즈니스 지향적 인 것 같습니다.

감사



답변

Repository는 본질적으로 Collection 스타일 의미론 (Add, Update, Remove)을 사용하여 데이터 / 객체에 대한 액세스를 제공 하는 지속성 을 위한 파사드입니다 . 이는 애플리케이션의 나머지 부분에서 데이터 / 객체를 저장하는 방식을 분리하는 방법입니다.

서비스는 애플리케이션을 운영하는 데 필요한 조정 또는 기타 “서비스”를 제공합니다. 서비스는 일반적으로 지속성에서 데이터에 액세스하는 방법을 모르고 저장소는 일반적으로 보유 할 수있는 모든 서비스의 데이터 / 객체 에만 액세스 한다는 점에서 매우 다릅니다 .


답변

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

실제 상황 비교에서 돈이 은행의 금고에 저장되어 있다면 금고가 저장소입니다. 입금, 출금 등을하는 창구가 서비스입니다.


답변

나는 일반적인 의미에서 첫 번째 시도로 말할 것입니다 (당신이 더 많은 맥락을 제공 할 때까지) :

  • 저장소는 나중에 사용할 수 있도록, 일부 글로벌 물건을 올려 곳입니다.
  • 서비스는 비즈니스 로직 코드를 명시했다 (그리고 이상적으로 프리젠 테이션 계층 및 데이터베이스 계층에서 분리?)

답변