2012-01-08 3 views

답변

8

한 주장이다. 내부 필드 값을 반환하면 속성을 사용하십시오. 내부에 논리가 있거나 계산 사용 방법이있는 경우 이렇게하면이 메서드를 호출 할 때 발생하는 일이 있음을 클라이언트에게 명확하게 알릴 수 있습니다.

나는 CLR via CSharp에서 Microsoft가 후회하는 DateTime.Now 메서드 대신 속성을 읽은 것으로 생각합니다. 전화 할 때마다 새로운 값을 반환합니다. 메소드가 아니라 속성이어야합니다.

+0

동의. 아마도이 문제를 야기시킨 것은 단지 인위적 사례 일뿐입니다. 진짜 DDD 이유가 없습니다. –

2

getter를 DDD 관련 메소드로 대체 할 이유가 없습니다. 여기에 일반 지침이 적용됩니다 (과중한 계산이 수행되거나 상태가 변경 될 때 수행).

하지만 세터는 다른 경우입니다. 어떤 사람들은 코드 냄새라고 생각합니다. 세터가 나타날 때마다 의심스러워해야합니다. 이상적인 경우에는 객체의 상태가 이름이 도메인의 동사와 일치하는 메소드에서만 변경됩니다.

관련 문제