1

Abstract Entities 일부 도메인이 Concrete Entities이고 extensibility을 추가하는 도메인 모델이 있습니다.DDD 추상 팩토리를 사용하여 도메인 객체를 만들 수 있습니까

콘크리트 실체간에 공유 논리를 적용하기 위해 Abstract FactoryAbstract Repository을 받아 들일 수있는 을 추가 할 수 있습니다.

질문 :

1. 나는 진실한 도로에 있니?

2.예인 경우 서비스 팩토리에 팩토리를 주입하려면 어떻게해야합니까?

+0

* DI (Dependency Injection) *를 사용하여 생성자를 통해 서비스에 종속성을 주입 할 수 있습니다. 서비스의 * private readonly * 필드를 사용하여 이러한 종속성에 대한 참조를 유지할 수 있습니다. –

답변

1

콘크리트 객체를 즉시 해석 할 수없는 경우 엔티티에 팩토리를 주입 할 수 있습니다. 팩토리는 나중에 제품을 인스턴스화 할 수있는 경우에 유용합니다. 예를 들어 데이터가 아직 준비되지 않았기 때문입니다.

그렇습니다. 콘크리트 팩토리를 엔티티에 삽입 할 수 있습니다. 종속성 삽입은이를 수행하는 올바른 방법입니다.

관련 메모에는 DDD에도 영향을주는 특정 시나리오가 하나 있습니다. 이것은 실제 상황이 아닐 수도 있지만 언급할만한 가치가 있습니다. 구체적인 제품을 생산할 것인지 결정하는 것이 도메인 로직의 일부인 경우가 발생할 수 있습니다. 내 말은, 공장의 선택은 고정되어 있지 않지만, 도메인 논리의 측면에서 구체적인 상황에 달려 있음을 의미합니다.

그런 경우에는 특정 로직 구현의 일부를 콘크리트 팩토리 구현에 추가하기도합니다. 결과적으로 추상 팩토리는 이전과 같은 방식으로 정의되지만 구체적인 팩토리는 도메인 모델의 일부가됩니다. 다소 이상하고 조심스럽게 수행해야합니다. Switchable Factory MethodsDomain Logic in Factories에이 접근법에 대한 분석이 있습니다.

관련 문제