2011-02-06 3 views

답변

31

도메인 모델 (용어가 전혀 Java와 다르지 않음)은 기술적 구현을 ​​위해 존재하는 클래스가 아니라 문제 도메인에서 모델을 모델링하는 클래스입니다.

도메인 모델 인스턴스는 종종 데이터베이스에 유지되어야하며 Java에서는 일반적으로 Java Beans 사양을 준수합니다. 즉, 개별 속성 및 매개 변수없는 생성자를 나타내는 get 및 set 메서드를 사용합니다. Spring 및 다른 프레임 워크를 사용하면 JSP에서 직접 이러한 속성에 액세스 할 수 있습니다.

예를 들어 상점 응용 프로그램에서 도메인 모델 클래스 중 일부는 Product, Order, ShoppingCart 및 Customer입니다.

+1

"데이터베이스에 보관 됨"이란 단어는 평신도 언어로 의미하는 것 –

+2

@ 이름은 해당 이름이 포함 된 응용 프로그램 인스턴스보다 오래 걸린다는 것을 의미합니다. 예 : 상점 응용 프로그램을 종료하고 다시 시작한 후에도 등록 된 고객으로 인식되어 장바구니의 내용과 과거 주문을 기억합니다. –

+6

@ 이름 : "지속"은 기본적으로 "저장"을 의미합니다. –

8

Domain model은 문제 도메인의 개념 모델입니다. "java 도메인 모델"은 해당 모델을 나타내는 Java 클래스를 의미합니다. 이 개념에는 java와 관련된 것이 없습니다.

Domain Driven Design도 참조하여 비즈니스 도메인 요구 사항에 대한 개발에 집중하십시오.

4

예제부터 시작해 보겠습니다. 해당 지역의 일부 사람들이 응용 프로그램을 작성하는 중입니다. 시스템을 설계 할 때이 사용자를 시스템의 사용자라고 부릅니다. 또한 시스템 및 인증 정보에서이 사람들의 역할 목록을 관리해야합니다. 따라서 시스템에 개념적 엔티티를 생성하기로 결정했습니다. 이 개념 엔티티는 사용자의 소프트웨어 솔루션 (사용자 응용 프로그램)에 추가로 매핑됩니다 (응용 프로그램). 이제 응용 프로그램을 나타낼 때 User 객체를 도메인 모델로 설명합니다. 이 용어의 기본 아이디어는 그 것이다. 자세한 내용은 Wikipedia link에서 확인할 수 있습니다.

5

Michael Borgwardt의 답변 "도메인 모델 (해당 용어가 전혀 Java가 아닙니다)은 클래스입니다"잘못되었습니다. 나는 그 답에 많은 사람들이 동의하는 것에 놀랐다.

도메인 모델은 솔루션 동작을 모델링하는 모든 클래스입니다. 필요한 행동을 수행하는 데 필요한 최소한의 것입니다. 도메인 모델에는 UI 및 지속성 기능이 없습니다 (문제가 UI 또는 지속성을 중심으로하지 않는 한).

하나의 클래스에서 구현 된 도메인 모델을 보았지만 이는 객체 지향 솔루션의 디자인이 아닙니다. 객체 지향 도메인 모델에서 각 개념에는 해당 개념에 필요한 동작을 구현하는 고유 한 클래스가 있으며 클래스의 상태를 유지하는 데 필요한 필드가 들어 있습니다.

+3

"도메인 모델"이라는 용어에는 Han 한 정의가 더 많이 있습니다. 전체 앱 모델 또는 단일 개체 모델을 의미 할 수 있습니다. 상황에 따라 다릅니다. –

3

지난 게시물 이후로 오랜 시간이 걸렸다는 것을 알고 있습니다. 그러나이 개념을 둘러싼 정보가 분명해야합니다. 도메인 모델은 종종 특정 문제 도메인을 나타내는 클래스 집합입니다. 이 개념은 어떤 유형의 기술 구현과도 관련이 없습니다.

"도메인 모델 인스턴스는 종종 데이터베이스에 유지되어야하며 Java에서는 일반적으로 Java Beans 사양을 준수합니다. 즉, 표시 할 메소드를 가져오고 설정합니다. 개별 속성 및 매개 변수가없는 생성자를 사용할 수 있습니다. 봄 및 기타 프레임 워크를 통해 JSP에서 직접 이러한 속성에 액세스 할 수 있습니다. "

도메인 모델은 종종 도메인 기반 디자인의 결과입니다. 도메인 기반 디자인은 훌륭하고 강력한 도메인 모델의 핵심입니다.에릭 에반스 (Eric Evans)의 "도메인 주도 디자인 (Domain Driven Design)"이라는 책을 통해 더 나은 이해를 얻으실 수 있습니다.

도메인 모델 클래스에는 관련 정보가 있지만 내 생각에는 동작이이 컨텍스트의 데이터보다 중요합니다. 도메인 기반 디자인의 큰 실수는 고객과 같은 도메인 엔터티의 데이터를 나타내는 데이터 클래스를 만들고 고객 특성에 대한 공용 getter 및 setter 만 제공하는 것입니다. 이러한 개체는 데이터베이스 구조를 모방하는 경향이 있으므로 결과적으로 실제 비즈니스 논리는 도메인 서비스에 상주 할 가능성이 높아져 anemic domain model이됩니다. 이 모델은 도메인 모델보다 Transaction Script에 더 가깝습니다.

+0

누군가 아래 투표를 설명 할 수 있습니까? –

관련 문제