2014-10-31 8 views
1

이것은 개인적인 취향에 대해 더 많은 내용을 담고있을 수 있지만 저장소 및 작업 단위 패턴을 사용하여 주위를 감쌀려고 노력했지만 아직까지는 매우 다른 용도로 보았으며 알고 싶습니다. 그것은 '더 나은'이유입니다.저장소 및 작업 단위 디자인 패턴

사용 1이 사용 중 이 저장소는 일

사용 2의 단위에 넣고이 사용에서 , 작업 단위는 저장소 그건

답변

1

에 넣고 ... 복잡해. 먼저 what a Repository is에 대한 간단한 설명부터 시작하십시오. 다음으로, UoW 개념은 남용되고 남용됩니다. 리포지토리를 고려할 때, Aggregates로 작업하는 DDD 접근법은 집계 루트의 모든 것이 전체적으로 지속되어야하므로 리포지토리가 UoW를 캡슐화 함을 의미합니다. db 수준에서 UoW는 단순히 트랜잭션을 사용함을 의미하며 동일한 트랜잭션을 사용하는 경우 여러 저장소에서도 작동합니다.

그러나 일반적으로 이는 비 분산 응용 프로그램에서만 작동하며 일부 ACID 호환 저장 장치가 필요하기 때문에 대부분 잘못된 설계입니다. 그것이 당신의 경우일지도 모르지만, 당신이 Repository 패턴을 사용하고 있다는 사실은 당신의 앱이 영속성을 알지 못하게한다는 것을 의미합니다. 이것은 어플리케이션이 지속성 내에서 사용할 수있는 패턴 인 UoW (ORM 또는 직접 db 트랜잭션을 통해).

그래서 올바른 대답은 다음과 같습니다. 특정 요구에 따라 UoW 구현 사용 ORM을 사용하는 경우 UoW가 자동으로 사용됩니다.