2016-05-03 6 views
0

Ich habe ein komplexes Domänenmodell, das mit der Hardware interagiert. Es gibt effektiv keine menschliche Benutzerschnittstelle oder Interaktion mit anderen Systemen als der Hardware.Hibernate mit Domänenmodell, aber kein Client

Das Domänenmodell betreibt die Hardware kontinuierlich und passt Aspekte an, damit es effizient arbeitet.

Ich möchte einige wichtige Entscheidungen speichern, die das Domänenmodell in einer Datenbank mit Hibernate trifft. Wie kann ich das Domain Model tun, da es keine "Anwendungsschicht" gibt? Muss ich dem Domänenmodell ein gewisses Wissen über Hibernate hinzufügen? Ist es OK, dass das Domänenmodell in diesem Fall direkt mit Hibernate interagiert?

+0

Woher kommen Ihre Eingaben? Werden "Use Cases" oder Domain Tasks von jemandem oder etwas identifiziert? Wann laden Sie Zeug aus der Datenbank? – guillaume31

+0

Nein, dies ist eine echte objektorientierte Rich-Domain-Modellanwendung. "Use Cases" werden nicht verwendet, um die Funktionalität des Systems zu definieren. Das Domänenmodell, wie ich erwähnt habe, trifft selbst Entscheidungen. Sie werden nicht von Menschen gemacht. Willst du sagen, dass es sein muss? – Jon

+0

Nicht unbedingt. Die Anwendungsebene nimmt basierend auf diesen Eingaben einfach Eingaben und orchestriert Aufrufe an Domänenmodellobjekte. Am Ende des Prozesses speichert es die Objekte zurück in die DB. Eine detailliertere Beschreibung Ihres Problems könnte helfen, zu sagen, ob Ihr System unter dieses Modell fällt oder nicht. – guillaume31

Antwort

0

Meine Vermutung wäre, dass Sie eine Anwendungskomponente haben, und es befindet sich zwischen der Hardware und Ihrem Domänenmodell.

Sie können wahrscheinlich herausfinden, wo die Nähte liegen, indem Sie überlegen, wie Sie automatisierte Tests für verschiedene Szenarien schreiben. Das heißt, wenn Sie die Hardware simulieren wollen, welche Bits behalten Sie und welche verdrängen/ersetzen Sie?

Sie würden wahrscheinlich einen Test schreiben möchten, die so etwas wie

Given (these previous observations) 
When (this observation happens) 
Then (the domain model decides the right thing) 

Die „andere Sachen“ (eigentlich Hören auf die Hardware, tatsächlich das Senden von Befehlen an den Controller) ist wahrscheinlich in der Anwendungskomponente aussieht. Dort würde ich die Schnittstelle zu Hibernate erwarten.

+0

Willst du sagen, Software * muss * eine Anwendung "Schicht" haben? Es gibt keinen. Man könnte Tests schreiben, indem man die Hardware verspottet. Aber das war eine Frage zum Speichern von Entscheidungen, die von dem intelligenten Domänenmodell zu einer Datenbank gemacht wurden? – Jon

Verwandte Themen