2009-08-23 3 views
2

비 데이터 클래스 (데이터베이스에 아무것도 표시하지 않음)는 여전히 응용 프로그램의 도메인 모델의 일부로 간주 되나요? 당신은 당신의 Linq2Sql 도메인 모델 또는 다른 곳에 그것들을 넣을 수 있을까요 ??비 데이터 클래스 모델의 일부입니까?

편집 : : 예를 들어, 특정 상황에서 인스턴스화 된 "StatusMessage"클래스가 있으며이를 버려지거나 사용자에게 표시 될 수 있습니다. 데이터베이스의 데이터와는 아무런 관련이 없습니다 (검색이나 저장이 아님). 또 다른 예는 "Invitation"클래스입니다. 내 사이트의 사용자는 서로 '초대'할 수 있으며 초대가있는 경우 일부 정보를 암호화 한 다음 사용자가 다른 사람에게 제공 할 수있는 링크를 출력하는 초대 클래스가 만들어집니다. 25 개 이상의 수업이 있습니다. 그들은 데이터 전송을위한 것이 아니며 실제 작업을 수행하지만 데이터베이스와 관련이 없으며 모든 사람들이 '도우미'라고 말하지 않습니다. ....

+0

이 수업에 대한 자세한 정보를 알려주십시오. –

답변

1

에 달려 있습니다.

이러한 클래스가 서로 다른 테이블에서 가져온 데이터의 조합을 나타내며 데이터를 처리하고 결정을 내리고 작업을 조정하면 비즈니스 수준 엔터티로 간주하여 비즈니스 계층에 보관합니다.

이런 종류의 도우미라면 의존 할 것입니다.

추가 : 해당 수업에 대한 추가 정보를 읽은 후 많은 사람들이 비즈니스 논리에서 정당한 자리를 차지할 자격이 있다고 생각합니다. 도메인 모델과 비즈니스 로직 사이에 선을 그릴 수 있습니다. 도메인 모델이 데이터베이스 매핑 클래스 만 포함한다고 생각해도 좋습니다. 그러나 비즈니스 규칙, 사용자 입력을 수용하고, 처리하고, 결정을 내리고, 필요한 작업을 실행하여 작업을 수행하는 작업자 클래스도 있습니다. 이 일 수 있습니다. 데이터베이스에 무언가를 보내고, 이메일 알림을 보내고, 스케줄러 작업을 시작하고, 다른 서비스에 알리는 등의 작업을 포함합니다. 많은 작업의 경우 결과가 데이터베이스에 멀리 반영되고 일부 값은 변경 될 수 있지만 완전한 비즈니스는 아닙니다. 오브젝트 상태가 데이터베이스로 직접 이동합니다. 따라서 전용 레이어에 함께 보관하는 것이 좋습니다.

또 다른 옵션은 이러한 클래스의 논리를 저장 프로 시저에 저장하여 데이터베이스에 유지하는 것입니다. 거기에 맞지 않는 것은 함께 도우미로 모일 수 있습니다.

"StatusMessage"를 사용하면 별도의 클래스가 필요하지 않을 수도 있습니다. 메시지는 뷰 수준에 속합니다. 클래스는 표시 할 메시지를 결정할 수 있지만 실제 표시 작업은 UI에 더 가깝게 수행됩니다.

+0

질문에 대한 클래스 정보를 추가했습니다. – Alex

1

도메인 모델은 해당 도메인과 관련된 데이터입니다. 모든 출처에서 올 수 있으며, 한 가지 방법 일 수 있습니다 (예 : 계산 및 영구 저장, 다시 읽지 않음). 데이터베이스는 단지 하나의 도메인 데이터 지속성 전략 일뿐입니다.

그래서 서로 다른 장소의 데이터가 도메인 모델의 일부가 될 수 있습니다.

개인적으로 메시지는 뷰 모델 엔티티가 더 많은 것으로 간주되지만 특정 메시지에 대한 요구 사항을 나타내는 상태는 도메인 모델에있을 수 있습니다. 초대장의 경우 메시지가 서비스로 전달되어 결국 도메인 데이터가된다고 말했을 것입니다 - 궁극적으로 전달되고 나는 다른 사용자와 관련된 도메인 데이터가됩니다 (다른보기 모델을 사용하여 표시한다고 가정) .

관련 문제