프리젠 테이션에 사용해야하는 절차를 서비스 클래스로 옮겨야한다는 DDD 책 (Eric Evans)을 읽었습니다. 예를 들어 BankAccountManagementService에는 ChangeBankAccount, GetByAccountId ... 메소드가 있습니다.도메인 객체 캡슐화 : 정적 메소드와 서비스 클래스
그러나 다른 비즈니스 개체에서 할당 할 수 없도록 일부 속성의 setter를 캡슐화해야합니다. C#에는 친숙한 클래스가 없으므로 서비스의 경우이 유형의 캡슐화를 사용할 수 없습니다. 그러나 BankAccount 비즈니스 객체의 정적 메소드를 사용하여이를 수행 할 수 있습니다.
(1) 위에서 언급 한 이유로 서비스를 사용하는 경우 어떻게이 제한 사항을 해결합니까?
편집 : 추가 질문
(2)는 정적 메서드 대신 서비스를 사용하는 것이 나쁜 이유는 무엇입니까? 난 그들을 별도의 부분 클래스 파일에 배치하여 proc 코드와 엔터티 코드를 섞지 않아도된다. 사전에
감사합니다 :)
답변 주셔서 감사합니다. 그러나 서비스 대신 정적 메서드를 사용하지 않는 이유는 무엇입니까? – Danil
정답을 반영하기 위해 수정 된 답변 – TimC
@Danil : 주어진 예는 이것입니다. BankService 클래스가 있다고 가정 해보십시오. 은행 계좌를 조작하는 데 필요한 모든 방법이 있습니다. 한 국가에 따라 다른 방법이 필요한 경우 어떻게됩니까? 메소드 이름은 같을 수 있지만 프로세스 이름은 약간 다를 수 있습니다. 이것은 서로 다른 인스턴스를 가지고 있다는 아이디어가 자신을 정당화하는 곳입니다. 두 개 이상의 인스턴스가 있으면 같은 자리 표시 자 (일반적으로 인터페이스)를 유지하면서 서비스를 서로 바꿀 수 있습니다. 정적으로 만 수행하는 것은 비실용적입니다. 실제로 정적 메서드는 유틸리티 클래스로 제한되어야합니다. –