2011-12-09 5 views
1

Fowler의 "Patterns of Enterprise Application Architecture"에는 저장소 패턴의 영구 기능에 대한 언급이 없습니다. "지속적인 기능"이란 엔티티를 업데이트, 저장, 추가 또는 삭제하는 기능을 의미합니다. 일련의 도메인 객체에 대한 순수한 매칭 메커니즘.저장소에 지속 기능이 있어야합니까?

다른 측면에서 마이크 Hadlow의 블로그 게시물 Using the IRepository pattern with LINQ to SQL을 살펴볼 수 있습니다. 삽입과 삭제와 같은 구체적인 영구 메소드가 있습니다.

그럼 저장소 패턴을 어떻게 구현해야합니까? 여러분은 저에게 좋은 "진정한"저장소 구현을 가르쳐 주시겠습니까? 나는이 주제에 대해 다소 좌절감을 느끼고있다.

미리 감사드립니다. 당신의 도움을 희망하십시오!

+1

무엇이 필요합니까? 그것을 구현하십시오. –

+3

저장소는 데이터 소스와 응용 프로그램 간의 추상화 계층에 지나지 않습니다. 기능 또는 읽기 기능이 지속되는지 또는 둘 다 관련이 없는지 여부 – Polity

답변

2

리포지토리는 메모리의 데이터 수집처럼 작동해야합니다. 추가 또는 삽입, 삭제 또는 제거, 선택 또는 가져 오기와 같이 귀하가 선택하는 명명법은 중요하지 않습니다.

저장소를 2 개의 인터페이스로 분리 한 다음 데이터 가져 오기/선택을위한 ReadOnlyRepository와 데이터 추가/업데이트/삭제를위한 WriteRepository를 가질 수 있습니다. 그건 중요하지 않아. 중요한 것은 응용 프로그램이나 비즈니스 코드가 저장소를 사용하여 데이터가 메모리에 이미로드되어있는 것처럼 상호 작용하므로 비즈니스 또는 응용 프로그램 코드와 혼합 된 SQL 쿼리를 작성하지 않아도된다는 것입니다.

우리가 패턴에 대해 얘기하고 있기 때문에 업데이트

, 하나의 "진정한"저장소 인터페이스 또는 구현이 없다. 비슷한 패턴을 따르는 여러 가지 구현이있을 수 있습니다.