2010-12-13 2 views
3

DDD 패턴에서 작업 단위 (UOW)가 저장소와 결합되어야합니까? 필자는 작업 단위 인터페이스를 구현하는 저장소, 작업 단위 자체에 대한 동작을 구현하는 저장소 및 작업 단위를 나타내는 속성을 가진 저장소를 포함하여 몇 가지 다른 예를 보았습니다. UoW의 수명 기간 동안 여러 저장소 인스턴스. 후자의 경우, 그것은 반 패턴과 같아 보입니다. 즉, 소비자가 저장소 인스턴스에서 UoW의 인스턴스를 공유하기 위해 실제로 알아야 할 필요가 있습니까? 캡슐화되어 소비자에게 노출되지 않아야합니까?저장소에 UnitOfWork를 구현해야합니까?

서로 다른 접근법의 장점과 이유에 대한 의견을 듣고 싶습니다.

감사합니다.

답변

2

여기에 discussion이 있습니다.

개인적으로 나는 agree으로 완전히 피해야합니다. 일반 리포지토리와 동일합니다.

+0

그래서 저장소 기반 전략보다 서비스 기반 전략을 지원합니까? 즉, 작업 수준에서 트랜잭션 : service.Save (object), 사용하지 않는 (var repo = new Repo()) {repo.Add (object); repo.Commit(); }? – Jeff

+0

@ JeffN825 집계 루트가 트랜잭션 경계를 정의해야한다는 생각을지지합니다. 그런 식으로, scope는 항상'repository.Save()'메소드가 길어질 것이고 당신은 작업 단위 (unit of work)를 필요로하지 않을 것이다. –

관련 문제