Design-Frage: Platzierung der Save-Methode

Lowpass

Aktives Mitglied
Hallo zusammen
In diesem Thread würde ich gerne ein paar Meinungen zu einer Design-Frage lesen, die ich im folgenden etwas genauer schildere:
Es geht um das Speichern von Objekten in eine Datenbank. Diese Datenbank ist sehr dynamisch (worauf ich nicht genauer eingehen will), was die Verwendung eines selber programmierten Moduls zwingend notwendig macht. Persistierungs-Frameworks sollen also in dieser Frage nicht weiter berücksichtigt werden, denn das DB-Zugriffs-Framework ist fest gesetzt und wird von einem anderen Entwicklungs-Team zur Verfügung gestellt.

Um zu speichern, greife ich also auf dieses Daten-Integrations-Modul zu, welches mir vorschreibt, wie Objekte zu speichern sind.
Momentan sieht es so aus, dass ich in meinem eigenen Modul eine Klasse "DbManager" habe, in welcher sich der gesamte Zugriff auf die Daten-Integration befindet und welche als Singleton erzeugt wird (per Dependency Injection mit Spring). Wenn nun also ein Objekt vom Typ "X" gespeichert werden soll, dann rufe ich dbManager.saveX(InstanzVomTypX) auf.

Es war für mich das nahe liegendste, das so zu lösen - aber wenn ich mir weiter Gedanken dazu mache, dann frage ich mich halt, ob die Klasse X nicht ihre eigene Save-Methode haben sollte - also dass dann der Aufruf erfolgt durch instanzVomTypX.save();
- dann müsste halt jede Instanz von X eine Referenz auf meinen dbManager haben. Wäre das nicht viel "objektorientierter"? Aber ist es nicht irgendwo undurchsichtig, dass dann alle Objekte eine eigene Referenz auf den DbManager haben?

Die Methoden im DbManager statisch zu machen schliesse ich aus, da ihm per Spring die Referenzen zu den DatenIntegrations-Objekten übergeben werden, die eben auch nicht statisch sind (das Klassenmodell ist ein Objekt vo Typ Klassenmodell, das Objektmodell ist eine Instanz vom Typ Objektmodell etc) - oder ist das kein Grund?

Ich bin in solchen Dingen sehr unerfahren und würde mich sehr über ein paar Stellungsnahmen mit kurzen Begründungen freuen.
 

FArt

Top Contributor
Typischer Fall für z.B. DAOs, also das Data Access Pattern...

Den Manager statisch zu machen ist auch nicht klug, denn mit Spring und DI hast du im Prinzip das selbe Resultat, nur praktischer.
 

Lowpass

Aktives Mitglied
Danke für den Beitrag. Das konsequente Umsetzen von DAOs ist aber leider aufgrund der DatenIntegration nicht möglich.
Grundsätzlich habe ich auf meiner Seite (mit JAXB erzeugte) DTOs und muss diese in Objekte umwandeln, welche die DatenIntegration mir vorgibt. Aufgrund des dynamischen Modells sind es immer Objekte vom gleichen Typ, die bestimmte Felder haben (die üblichen Verdächtigen wie id, name, ladt modified etc.) und eine Liste von Attribut-Objekten, welche die für das konkrete DTO speziellen Attribute repräsentieren.
Das fertig gestellte Objekt besitzt aber keine Save-Methode, sondern muss von mir beim Aufruf einer create bzw save-Methode der DatenIntegration übergeben werden.

Wenn ich den DAO-Ansatz richtig verstehe, dann müsste das standardisierte Objekt der DatenIntegration, in das ich meine DTOs umwandle, eine save-Methode haben - hat es aber nicht und darauf habe ich leider keinen Einfluss.
Wenn ich also auf meiner Seite DAOs haben wollte, müsste ich eine neue Zwischenstufe einführen...

ich hoffe das ist einigermassen veständlich. Es ist mir klar, dass wir hier einen etwas komplizierten Ansatz haben und ich habe mich schon genug darüber geärgert. :)
 
M

maki

Gast
Wenn ich den DAO-Ansatz richtig verstehe, dann müsste das standardisierte Objekt der DatenIntegration, in das ich meine DTOs umwandle, eine save-Methode haben
Du verwechselst DAO mit ActiveRecord, DAO ist schon richtig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
S Java Design Frage Allgemeine Java-Themen 10
M OOP Design Frage Allgemeine Java-Themen 2
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
G Accordion Design Pattern Frage Allgemeine Java-Themen 2
S Frage zum Design der Datenstruktur Allgemeine Java-Themen 10
T Design-Frage Allgemeine Java-Themen 14
S XML-Parsing / public-Member-Variablen / Design-Frage Allgemeine Java-Themen 8
N Design-Frage: persistent machen per Reflection Allgemeine Java-Themen 3
M Frage zum Design :: allgemein Allgemeine Java-Themen 6
U Frage zu DB Design Allgemeine Java-Themen 3
S design frage Allgemeine Java-Themen 10
R Design-Frage Allgemeine Java-Themen 9
J Meinung zum verwendeten Design Pattern Allgemeine Java-Themen 4
S ArrayList Design Allgemeine Java-Themen 4
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
M Diverse Design-Fragen Allgemeine Java-Themen 6
M OOP Design Pattern - "extends Observable implements Observer" Allgemeine Java-Themen 0
T OOP Fehler im Design Allgemeine Java-Themen 9
perlenfischer1984 Welches Design Pattern ist geegneit. Allgemeine Java-Themen 7
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
R Parameter Adapter - Design Allgemeine Java-Themen 1
D Bezüglich Design meines Codes Allgemeine Java-Themen 1
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
P Auf die Anzahl der Joins achten beim WS design Allgemeine Java-Themen 1
J Domain Driven Design - Modellierungsfrage Allgemeine Java-Themen 3
F Welches Design Pattern? Allgemeine Java-Themen 3
H MVC Design Allgemeine Java-Themen 9
J Swing Eigenes Button-design Allgemeine Java-Themen 2
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
C Gutes Code Design (3 Schichten Modell) Allgemeine Java-Themen 19
D Design Stations-Gitter Allgemeine Java-Themen 4
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
G Design Patterns für Programm Allgemeine Java-Themen 3
I Wie populär ist Design by Contract in Java und was haltet ihr davon? Allgemeine Java-Themen 5
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
J Aktionen im State-Design-Modell Allgemeine Java-Themen 3
S Design Oberfläche Allgemeine Java-Themen 2
G Domain Driven Design Model Allgemeine Java-Themen 14
G konkretes Domain Driven Design Aggregate Allgemeine Java-Themen 2
hdi Hilfe beim Design (Stichwort OO, Pattern, ...) Allgemeine Java-Themen 11
B Design Problem Allgemeine Java-Themen 8
faulelotte Verständnisproblem Domain Driven Design Allgemeine Java-Themen 3
D design gesucht - Angabe von zu ersetzenden substrings Allgemeine Java-Themen 2
D Design ohne Getter und Setter Allgemeine Java-Themen 8
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
N Welches design pattern? Allgemeine Java-Themen 8
D design client server Allgemeine Java-Themen 10
S JToolBar Design Allgemeine Java-Themen 3
M Bildersyncronisierung - Design Patterns? Allgemeine Java-Themen 2
T Design - Exception in Thread Allgemeine Java-Themen 3
G Composite, Design Pattern, printTree Allgemeine Java-Themen 42
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
K Design / Implementierung Allgemeine Java-Themen 5
N Checkstyle - Design for Extension Allgemeine Java-Themen 4
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
E Was ist ein gutes Design fuer meine Programm? Allgemeine Java-Themen 3
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
P Apple Design Allgemeine Java-Themen 5
T Design-Tipp gesucht Allgemeine Java-Themen 2
M Design von Java Klassen Allgemeine Java-Themen 2
G java design von klassen und projekten Allgemeine Java-Themen 6
K Design: Klassen in Pakete aufteilen - Eure Meinung Allgemeine Java-Themen 8
S Programmierstil / design Allgemeine Java-Themen 9
S Exception design Allgemeine Java-Themen 2
m@nu Exception-Design Allgemeine Java-Themen 4
N Hilfe beim Design Allgemeine Java-Themen 13
D Design Pattern: Singleton Allgemeine Java-Themen 4
Torres Design-Problem mit Jakarta Struts Allgemeine Java-Themen 2
A Anwendungs-Design (Plugin-Architektur) Allgemeine Java-Themen 4
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
H Frage regex greater than less than Allgemeine Java-Themen 7
berserkerdq2 Frage zu IntelliJ und JavaFX Allgemeine Java-Themen 1
W Timer Konzept-Frage Allgemeine Java-Themen 16
T Eine Frage des Designs Allgemeine Java-Themen 2
C Frage zu eigenem TableCellRenderer Allgemeine Java-Themen 11
C Programmvorstellung & Frage zum Thema Geschäftsform Allgemeine Java-Themen 51
J Frage zu System.getproperties. Allgemeine Java-Themen 60
molat100 wie kann man die Frage beantworten Allgemeine Java-Themen 1
pkm Frage zur Präzision von Calendar.WEEK_OF_YEAR Allgemeine Java-Themen 12
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
pkm Frage nach eventuellem syntaktischen Zucker bei der Konkatenation von ArrayLists Allgemeine Java-Themen 4
M Frage-Antwortspiel wie Wer wird Millionär Allgemeine Java-Themen 1
F Frage zu System.in Allgemeine Java-Themen 3
marcooooo Frage zum Beispiel im Anhang Allgemeine Java-Themen 16
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
B For-Loop Frage Allgemeine Java-Themen 21
L Java frage Allgemeine Java-Themen 3
bueseb84 Frage zu Mock und UpperBound Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben