2008-11-21 2 views
5

DDD의 세입자 중 한 명은 개체가 유효하지 않은 상태가되도록 허용하지 않는 것입니다. 이것이 나에게 99 %의 유효하지 않은 상태의 객체가 될 것이므로 public parameterless 생성자가 없어야 함을 의미합니다.DDD + Public Parameterless 생성자 - 존재해야합니까?

앞으로 나아갈 수있는 좋은 방법입니까? 당신이 방금 진짜 빨리 새로운 수업을하고 싶을 때 그것은 거대한 PITA가됩니다.

답변

2

좋은 질문입니다. 나는 매개 변수없는 생성자가 악마라고 말하는 DDD 나치 친구들이 있습니다. 나는 그것에 대해 어느 정도 동의하지만, 또한 그것이 수업의 목적에 달려 있다고 느낍니다.

2

킬 호퍼 (Kilhoffer)가 말했듯이, 그것은 당신이 수업에서 무엇을하려고하는지에 달려 있습니다. 어떤 상황에서 실제로 속성을 초기화하지 않고 클래스를 새로 만들까요? 데이터를 필요로하지 않는 호출하려는 인스턴스 메소드가있는 경우 해당 메소드를 정적으로 표시하거나 메소드를 별도의 클래스로 이동하는 것을 고려할 수 있습니다. 또한 클래스에 추가로 유효한 상태가 하나있을 수도 있습니다 (완전히 비어 있음).

개인적으로 나는 모든 것을 온건하게 믿습니다. PITA 인수가 높고 문제가 발생하지 않는다고 합리적으로 확신 할 수 있다면 매개 변수없는 생성자가 문제가없는 것 같습니다. 어떤 점에서 나는 그것이 의견의 문제가된다고 생각한다.

0

모두 누가 생성자를 호출하는지에 따라 다릅니다. 팩토리 메소드가 "도메인 측"생성자가되고 실제 생성자가 구현 세부 사항이되기 때문에 실제로는 문제가 없습니다.