2013-07-25 3 views
7

저는 DDD 철학에서 시작하여 여기에있는 기존 시스템과의 통합을 구현하고 싶습니다. 인터넷에서의 제 연구에서 몇 가지 기사와 샘플을 찾았지만 그 통합을 올바르게 수행하는 방법을 이해하는 것은 꽤 어렵습니다.반부패 레이어를 올바르게 구현하는 방법

이 질문을하기 전에 여기에서 검색을 수행했지만 결과는 유용하지 않으므로 ACL의 구현 샘플을 보내거나 표시 할 수 있는지 알고 싶습니다. 여기

나는이 항목이 :

  • 레거시 시스템
  • 레거시 데이터베이스 (내가 접근 할 필요가)
  • DDD 방식
를 사용하여 생성 될 새 응용 프로그램을

초기 아이디어는 NHibernate 전체에서 해당 데이터베이스에 액세스하여 필요한 매핑 클래스, 도메인 엔터티를 만들고 비즈니스 규칙을 구현하는 것입니다. Eric Evans에 따르면이 전략은 [Bubble Context] [1]라고합니다. 나는이 전략이 나의 문제를 해결할 것이라고 생각하지만 올바른 방법으로 그것을 수행하기위한 표본이 필요하다.

나를 도와 줄 사람이 있습니까?

+2

Eric Evans의 저서 "도메인 기반 디자인"을 읽으셨습니까? acl에 대한 섹션이 있습니다. Acl은 실제로 DDD에서 어댑터 패턴을 적용한 예입니다. – Hippoom

+1

내가 개인적인 경험에서 얻은 한 가지 제안은 가치가 없을 수도 있기 때문에 NHibernate를 사용하여 레거시 데이터베이스에 액세스하지 않는 것입니다. 대신 ACL을 통해 새 앱에서 액세스 할 수있는 서비스로 기존 시스템을 캡슐화하는 데 집중하십시오. – eulerfx

답변

6

ACL은 코드 조각이 아닌 패턴입니다. 레거시 시스템에 대한 의존도가 높지 않거나 현재 시스템에 독립적 인 코드 조각을 갖고 싶다고 말하지는 않았습니까? 이것으로 당신은 당신의 ACL을 데이터베이스에 대한 서비스로 결정할 것인가 아니면 레거시 시스템 로직에 몇 가지 랩핑을 통합 할 것인가?

ALC에 삽입 한 실제 조각은 구현에 따라 크게 달라집니다. 당신이 요구하는지의 일반적인 스키마가 : enter image description here

당신은 Eric Evan's talk에서 더 많은 정보를 찾을 수는.

관련 문제