# Was ist das Domain Model



## RedZeroX2 (29. Nov 2011)

Hallo habe mir schon einige erklärungen zum Domain Model im Netz angesehen aber alle sind ziehmlich schwammig. 

Soweit ich weiß ist das eine Klasse die gewissen Attribute hat und mit diesen intern auch arbeiten kann.
So worin unterscheidt sie sich dann von anderen klassen. Und wie und wofür verwende ich sie ??? 

Mit freundlichen Grüßen
Red


----------



## Andi_CH (29. Nov 2011)

Ähm - Domain modell? Hat das im Entferntesten etwas mit Java zu tun? Ich glaube kaum.


----------



## SlaterB (29. Nov 2011)

> und mit diesen intern auch arbeiten kann.

keine Ahnung wo du das herhast,
meiner Ansicht nach sind die Interneterklärungen zumindest deutlich unschwammiger als dieses,
das Domain Model ist Menge aller Datenklassen,
Domain Model
zur Unterscheidung von Logik/ Berechnungsklassen

besonders deutlich wird es mit einer Datenbank als Grundlage eines Programms

(edit: verschoben)


----------



## Andi_CH (29. Nov 2011)

Ich denke du meinst das UML Domain Model

Das ist aber IMO etwas, was noch gar nichts mit Klassen als solchen zu tun hat, sondern auf sehr abstraktem Niveau aufzeigt welche Komponente wo liegt und welche Aufgabe sie erfüllt.

Es sagt noch gar nichts aus, was für Klassen später implementiert werden. (Auch IMO  )


----------



## RedZeroX2 (29. Nov 2011)

Danke werd mir das mal ansehen.
MfG
Red.


----------



## thn-d (29. Nov 2011)

Ich kenne es auch nur so, dass das Domain Model die Daten der jeweiligen Domäne betrachtet. Also die fachlichen Daten wie z.B.: Kunde, Warenkorb, Artikel. Das kann man dann datenbankbasiert mit ER-Diagrammen oder in UML mit "operationslosen" Klassendiagrammen modellieren.

Auf der Implementierungsebene kann man sog. DAO definieren (z.B. um sie mit Hibernate auf eine Datenbank zu mappen). Bei einer mehrschichtigen Architektur macht man das in der Persistenzschicht.


----------



## ARadauer (29. Nov 2011)

Das sind die Klassen der Fachdomane... also Kunde, Bestellung, Artikel usw... im gegensatz... irgendwelchen Services oder Infrastruktur Themene also... InvoiceCalculationServcie, oder AbstractPriceDeterminationController... AbstractGeneratedMopContributorSuperclass ;-)


----------



## maki (29. Nov 2011)

Denke dass "Data modell"/"Datenmodell" und "Domain model"/"Domänenmodel" oft genug verwechselt werden.

Ein Datenmodell besteht nur aus Datenstrukturen, meist JavaBeans ohne relevante Operationen, denn diese liegen dann woanders(Sevices/Manager), also eher Prozedural strukturiert.

Ein Domänenmodell dagegen beschreibt Beziehungen zwischen Klassen (die Daten und die Operationen die darauf arbeiten enthalten), oft als POJOs umgesetzt, welche die Fachdomäne abbilden. Auch hier kann es Services geben, der Hauptunterschied sind eben die Fachobjekte, die neben Daten auch die Logik enthalten.
Domain Driven Design beschreibt das Domänenmodell imho am besten.


----------

