도메인 용 모델을 설계 할 때 거의 항상 .IsSomething
기능을 갖게됩니다. IsNew
및 IsDirty
은 데이터 지속성 목적으로 공통적이며 비즈니스 규칙 유효성 확인을 위해서는 IsValid
, 심지어는 현재 프로젝트에서 IsFraudulent
(비즈니스 규칙 유효성 검사 추가) 등이 있습니다. 다른 이들에 의해 구현 된 것을 볼 때마다 메소드로 거의 항상 수행됩니다. 그러나 나는 특별한 이유가 있는지 궁금해합니다.Model.Is ___ - Property 또는 Method 여야합니까?
나는 개체와 메서드를 설명하는 속성을 어떤 종류의 동작을 수행하는 것으로 보려는 경향이 있습니다. 이것들은 실제로 행동을 수행하지 않습니다. 코드가 호출 될 때 동적으로 결정되고 명확하게 읽기 전용이므로 코드가 관련되어 있지만 나에게는 여전히 메소드가 아닌 속성으로 적합합니다.
속성에 직렬화 문제가있을 수 있습니다. 리치 도메인 모델은 로직과 기능성을 포함하고 있기 때문에 어쨌든 잘 직렬화되지는 않지만, 서비스 경계를 넘어서 뭔가를 옮길 필요가있을 때마다 일반적으로 정의 된 DTO 구조로 먼저 전개됩니다.
그러나 다른 사람들이이 주제에 대해 통찰력을 갖고 있는지 궁금합니다. 이러한 속성을 속성이 아닌 메서드로 구현할 좋은 이유가 있습니까?
은 (접선이 an answer has already been given 불구하고, 확장 성이 정말 이런 일에 일관성 도움이 될 관련. 나는. 그러나 속성은 방법 도메인 별 로직을 구현하기 위해 일반적으로System.String
에
IsSomething()
확장 방법의 숫자 있는 한
경우에도 난 그냥 확장과 일관성을 위해 방법을 고수 할 수 있습니다, 이동)
또는 C# 5에서 손가락을 교차하여 확장 속성을 사용할 수 있습니다. – SWeko