2011-12-23 2 views
0

일반적인 질문입니다. 작업 단위 패턴을 사용하여 시스템을 설계하고 있습니다. 단위 테스트 방식으로 여러 작업 단위간에 논리를 공유하는 방법을 설명하는 확립 된 패턴이 있습니까? 여기 작업 단위 패턴의 코드 공유

는보다 구체적인 시나리오는 다음과 PurchaseOrder에가있다

하는

UnitOfWork1 -> 승인을 위해 PO를 제출

UnitOfWork2 ->는 승인 또는 PO를 거부하고 제출자에게 다시 전송

두 작업 단위는 다음과 같은 코드를 공유합니다.

,210

ShareLogic1은 -> PO에 마지막 작업을 기록

어떤 패턴 (들) 나는 그런 논리가 여러간에 공유 할 수있는 사용할 수 있습니다 -> 사용자

SharedLogic2 PO

에 액세스 할 필요가 작업 단위. 이 경우 상속으로 문제를 해결할 수 있지만 모든 경우에 맞지 않으므로 상속을 사용하지 않으려합니다.

+0

이 패턴을 메소드라고합니다.) 메소드는 재사용 가능한 코드 조각입니다. –

+0

그건 제가 묻고있는 것이 아닙니다. 여러 작업 단위간에 논리를 공유하는 패턴이 있습니까? 공유 코드는 조롱 받아야합니다. 헬퍼 클래스의 무리에 코드를 덤프 쉽게하지만 그게 내가 무엇을 찾고 있었는지 않습니다. 내가 해결할 수 있었던 해결책은 작업 단위가 요구하는 특정 로직을위한 클래스 인 비즈니스 로직 팩토리를 갖는 것이다. 이것이 최고의 패턴인지 확실하지 않습니다. 저는 이것이 일반적인 시나리오라고 확신합니다. 다른 사람들이이 문제를 어떻게 다루 었는지 알고 싶었습니다. – Anish

+0

UnitOfWork 패턴을 잘못 이해했다고 생각합니다. UOF는 일련의 작업을 원자 적으로 (단순한 단어로) 간주 할 수있는 범위입니다. .NET TransactionScope 클래스는 데이터 액세스를위한 UOC의 예입니다. 그래서 그것은 범위입니다. 당신이 쓴 것을 보면 UOC가 일종의 WorkFlow elemnt로 이해 된 것처럼 보입니다. –

답변

0

논리를 클래스에 넣고 두 작업 단위에 액세스 할 수있게하십시오. 두 예제 모두 PurchaseOrderRepository 클래스에 속한 것 같습니다. 컨트롤의 반전을 사용하면 그것을 조롱 할 수 있습니다.