Dies ist eine Frage zum Anwendungscode-Design. Hier ist meine Situation:
Ich habe eine db-Tabelle mit dem Namen Bericht, die die Menge an Arbeitszeit eines Benutzers während eines bestimmten Monats darstellt. Ich habe ein DAO, um mit der Datenbank und einem @ Service umzugehen, der die Methoden von daa kapselt und mehr Zeug mit Berichten macht.Java-Code-Design bidirektionale Zuordnung
Zusätzlich habe ich eine Tabelle Target, um den Benutzern Ziele für ihre Aktivitäten zuzuordnen (Ziele können monatlich oder jährlich sein). Ich habe wieder ein DAO und einen @Service, um diese Entitäten zu verwenden.
Meine Frage ist, über Design, weil ich eine bidirektionale Verbindung zwischen den beiden Diensten, vor allem für die folgenden Prozesse:
- Der Berichtsdienst den Zieldienst aktualisieren muss, wenn ein Bericht hinzugefügt, modifiziert oder gelöscht ..
- der Zieldienst den Bericht gewartet werden muss, wenn wir den Verlauf eines Ziel
ich meine Anwendung Refactoring und zu sehen, die beiden Bohnen Bohnen berechnen müssen, die einander brauchen macht mich t fühlen sein ist nicht so gut ...
Gibt es eine Möglichkeit, diese Situation richtig zu gestalten (ich meine die Verbindung zwischen meinen beiden Diensten) oder sollte ich bei der bidirektionalen Verbindung bleiben?
Definieren Sie nicht die Service-Schnittstelle? Auf diese Weise haben Sie keine Abhängigkeit von den Service-Beans (Implementierungen). –
Ja, ich benutze Schnittstellen für meine Dienste und meine DAOs. Aber in meinen Implementationen habe ich immer noch diese "zirkuläre" Verbindung zwischen den beiden Klassen, die nicht besonders schön und schwer zu pflegen ist, besonders in meinen Unit Tests. – gWombat
Warum müssen Ziele mutiert werden, wenn Berichte sind? Kannst du das erklären? – plalx