Getters 및 Setters 사용에 관한 몇 가지 기사/게시물과 도메인 모델 개체에서 캡슐화의 목적을 무력화시키는 방법에 대해 읽었습니다. 나는 setter를 사용하지 않는 논리를 이해한다 - 당신은 클라이언트 코드가 객체 비즈니스 규칙과 불변량의 문맥 밖에서 객체의 속성을 조작하도록 허용하고있다.DDD 및 Getters 및 Setters 사용
이제이 교장이 나를 혼란스럽게합니다. 예를 들어, 객체의 멤버 변수의 값을 변경해야한다면 어떻게됩니까? 예를 들어, 사람의 이름이 변경되면이를 모델에 반영하는 방법은 무엇입니까? 처음에는 'ChangeName'이라는 함수를 사용하지 않았는데 새 이름을 전달하고 차례로 내부 '이름'변수를 변경할 수 있다고 생각했습니다. 음 .... 그저 세터가 아닙니다!
내가 분명히해야 할 것은 - 내가 세터를 완전히 없애고 있다면, 위와 같은 상황에서 나는 생성자 매개 변수에 전적으로 의존해야만 하는가? 생성자를 통해 이전 특성 값 대신 새 특성 값을 전달해야합니까? 그 후에 개체를 모든 지속성 인프라에 전달하여 변경 내용을 유지할 수 있습니까?
이 두 기사는이 토론에 유용합니다