내 도메인 객체의 생성자가 깔끔하게 변하기 때문에 건물을 짓고 있습니다. 내 질문은 제약 조건에 대한 테스트를 공장으로 이동해야합니까 아니면 도메인 객체 생성자에 두어야합니까?Object Constructor 또는 Factory에서 제약 조건을 확인 하시겠습니까?
테스트는 대부분 개체가 인스턴스화되기 전에 필요한 매개 변수가 제공되는지 또는 관련 개체가 특정 값을 갖는지 확인하는 것입니다. 테스트가 실패하면 일반적으로 예외가 발생합니다.
한편으로는 논리가 도메인 객체에 속한다고 생각합니다. 왜냐하면 객체의 본질적인 부분이기 때문입니다. 예를 들어 이름이없는 애완 동물은 유효하지 않습니다.
한편, 내가 공장으로 이전하는 거의 모든 부분은 도메인 객체의 필수 부분입니다. (이것은 도메인 객체 팩토리의 결과입니다. 도메인 객체의 캡슐화가 깨졌습니다.)
도메인에 남겨 두는 것이 더 안전 할 수 있지만 정돈이 잘되어 있지 않습니다. 공장에 있다면 코드가 더 읽기 쉽지만 다른 사람이 공장 대신에 new
연산자를 실수로 사용하면 문제가 생길 것입니다 ...
도메인 개체가 유효한지 여부를 확인해야합니다. 필수 필드가 유효성 검사 규칙을 충족시키지 않으면 선택적으로 팩터 리 클래스에서 예외를 catch하는 경우 객체의 생성자에 예외를 던집니다. – Orangepill
오렌지 필, 왜 대답하지 않습니까? –