모델보기 발표자 및 도메인 중심 디자인 프로젝트에서 발표자에 공장 사용

StackOverflow https://stackoverflow.com/questions/422440

문제

도메인 중심 디자인에서는 공장을 사용하여 도메인 레이어에서 도메인 객체를 생성하는 것이 좋습니다 (직접 생성자 또는 IOC 사용과 달리).

그러나 발표자 계층에서 도메인 객체 공장을 사용하는 것은 어떻습니까? 예를 들어, 발표자로부터 얻은 사용자 입력에서 도메인 객체를 만들고 있다고 말합니다.

다음은 여러 가지 소수점 설정이있는 구성 도메인 객체가 있다고 가정합니다.

공개 클래스 구성 : persistantObject {

 public decimal temperature {get;set;}

 ...(times 20)

 public decimal gravity {get;set;}

}

발표자 계층이 아닌 도메인 레이어 에서이 객체를 만들려면 이러한 각 소수점 값을 함수 매개 변수로 전달해야합니다. 다루기 힘든 기능 정의 및 호출을 만듭니다.

IE configurationservice.createConfiguration (온도, ... (x20), 중력);

더 나은 솔루션은 발표자 계층에서 구성 객체를 만들고 사용자 입력에서 직접 구성 객체의 모든 값을 지정하여 긴 기능 호출을 건너 뛸 수 있습니다.

configuration config = configurationFactory.createnewConfiguration ();

config.temperature = 온도;

.. (x20) .. = ...;

config.gravity = 중력;

configurationservice.savenewconfiguration (config);

그러나이 접근법이 잘못되었는지 궁금합니다. 이 두 가지 접근 방식이 잘못되면 사용자 입력에서 긴 객체를 만드는 가장 좋은 방법은 무엇이며 그 이유는 무엇입니까?

감사!

도움이 되었습니까?

해결책

도메인 객체를 도메인 레이어에서 프레젠테이션 계층으로 놓아 두는 것이 좋습니다. 프레젠테이션 계층은 프레젠테이션에 중점을 둡니다.

이러한 이유로, 데이터 전송 객체를 구성하여 데이터를 도메인 및 프리젠 테이션 계층으로 섞습니다. 귀하의 경우, 대화 상자에 서비스에 전달되어 해당 도메인 객체로 변환되는 DTO를 채우십시오.

그래도 매번 DTO에서 도메인 객체를 구성하고 싶지 않을 것입니다. DTO가 도메인 객체의 하위 집합 만 나타내는 경우를 고려하십시오.. 이러한 DTO에서 기존 도메인 객체를 재구성하면 부분 도메인 객체를 제공합니다. 전체 도메인 객체를 보유한 가벼운 캐시를 유지하여 올바른 업데이트를 수행 할 수 있습니다.

본질적으로, 당신은 당신이 적용하면 DTO 솔루션에 도착합니다. 매개 변수 개체를 소개합니다 리팩토링.

다른 팁

이것을 처리하는 두 가지 주요 방법이 있습니다

1) 이것이 대화 상자를 통해 설정되면 명령 패턴을 구현하는 클래스를 생성하고 해당 객체와 대화 상자를 바인딩합니다. 예를 들어 CMDCreateConfigUrationService 및 CmdedItConfigUrationService입니다.

CMDCREATECONFIGURATIONSERVICE는 공장 클래스 및 최소 구성 서비스를 선택 해야하는 최소 매개 변수에 의존합니다.

iconfigurationserviceeditor 인터페이스를 설정하고이를 매개 변수 중 하나로 CMDedItConfiguration 매개 변수로 전달합니다. iconfigurationserviceeditor 인터페이스를 사용하면 대화 상자에서 쉽고 통증이없는 정보를 쉽게 전송하는 데 필요한 많은 방법을 정의합니다. 키와 값 모음을 사용하는 것이 좋습니다. 명령 개체는이 컬렉션에서 구성 서비스를 설정하는 방법을 알고 있습니다. 대화 상자는 설정시이 컬렉션을 기대하는 것을 알고 있습니다.

데이터 구조에 관계없이 명령 개체에서 구성 서비스를 작성하는 작업을 수행합니다. 대화가 아닌 대화/양식/화면 객체를 구현하면 ICONFIGURATIONSERVICEEDITOR를 구현할 수 있습니다. 테스트를 자동화 할 수 있으며 특정 상황에서 복잡한 객체를 구성 할 수 있습니다.

나는 각각 4 ~ 40 개의 항목을 가진 수십 개의 파라 메트릭 형태를 가진 CAD/CAM 소프트라웨어를 위해이 방법을 개발했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top