3 Schichtenarchitektur , IDAO

Diskutiere 3 Schichtenarchitektur , IDAO im AWT, Swing, JavaFX & SWT Bereich.
S

Sandro95

Guten Abend Leute ,
ich verstehe nicht ganz wie das mit der IDAO funktioniert.
Mir ist bewusst , das man sein Projekt bei der Architektur und 3 Pakte ( Gui , Fachlogki und Datenhaltung ) aufteilen sollte.
Nut verstehe ich nicht ganz wie das mit der IDAO gemacht wird finde dazu leider auch nichts passendes im Netz.

Ich habe im Anhang mal mein Studiumprojekt angehangen .
Jedes mal wenn ich bei der Bildview beim Fenster alles eintrage und auf neu drücke kommen versch exception Zb eine NullPointer kann das nicht ganz nachvollziehen .

vlt kann mir ja jmd behifich sein

Danke ich voraus leute
 

Anhänge

S

Sandro95

Ja , bei uns in der Uni heißen die drei Shichten , view (GUI) , Fachlogik und Datenhaltung.
@mihe7 wie würdest du denn mein Projekt implementieren , das die Fachlogik mit der Datenhaltung kommunizieren kann ?
 
S

Sandro95

warum ? bei uns nennt sich das so in den Vorlesungen ist doch auch shit egal letzt endlich darum gehts ja auch nicht :D @handshake45
 
mihe7

mihe7

Ja , bei uns in der Uni heißen die drei Shichten , view (GUI) , Fachlogik und Datenhaltung.
@mihe7 wie würdest du denn mein Projekt implementieren , das die Fachlogik mit der Datenhaltung kommunizieren kann ?
Es gibt Repositories, die den Zugriff auf die Daten kapseln und vom Rest der Anwendung genutzt werden können. Was genau sollt Ihr denn machen? Und wofür steht IDAO?!?
 
J

JustNobody

MVC ist aber etwas anderes als die Aufteilung, die hier gefordert es. Das hier angesprochene geht eher Richtung 3-tier.

Und das IDao ist nur der Name eines zu Implementierenden Interface ... Halt bei der Übung das Interface für das Data Access Object.

Was ich gerne nutze ist eine Dependency Injection. Dann habe ich halt in meinem Code lediglich, dass ich eine IDao Instanz brauche und die bekomme ich dann per Konfiguration oder eben durch die Automatismen von Spring Boot. Hat den Vorteil, dass diese Implementierung jederzeit von Außen angepasst werden könnte.

Du kannst das aber auch über andere Wege nutzen, so man kwon DI Framework nutzt:
- wir haben ohne DI meist es so gehandhabt, dass de DAO einfach zu erstellen waren. Und dann war da halt einfach immer wo man es brauchte ein: IDao dao = new DaoImpl()

Bei den Komponenten ist die Abhängigkeit aber wichtig. Es sollten diese 3 Komponenten nur Abhängigkeiten in eine Richtung haben. Die GUI kennt dann die Fachlogik aber nicht umgekehrt.
Damit die GUI dann Änderungen mit bekommen kann, sind dann halt ggf Events notwendig, für die sich GUI Elemente dann eintragen können... oder die GUI implementiert Interfaces, die die Fachkomponente bereit stellt und die dann bekannt sind. Aber ich denke, dass der Aufbau bei so Schichten prinzipiell bekannt ist. (Ich habe die Aufgabe nicht im Detail gelesen, da ich nur noch auf dem Handy aktiv bin ...)
 
S

Sandro95

Das die Abhängigkeit wichtig , weiß ich , die Gui kennt die Fachlogik und die Fachlogik kennt die Datenhaltung . Der Aufbau ist mir ebenfalls bekannt
Ich find leider meinen Fehler nicht , warum das bei der Ausführung ( wie anfangs beschrieben ) nicht klappt @JustNobody
 
J

JustNobody

Ich kann auf Deinen Code erst morgen schauen, da ich nur noch auf dem Handy aktiv bin. Falls mir niemand anderes zuvor kommt schau ich dann.
 
S

Sandro95

Ja kein Stress , ich danke dir schon mal im voraus !@JustNobody
 
mrBrown

mrBrown

Das nennt sich Model, View und Controller-Architekturmuster. Siehe hier https://de.wikipedia.org/wiki/Architekturmuster#Interaktive_Systeme .
MCV ist etwas anderes als Schichtenarchitektur. Sie kommen zwar oft zusammen vor, und Teile aus dem einen entsprechen Teilen aus dem anderem, sind aber auf unterschiedlichen Ebenen angesiedelt.
Hier würde am ehesten Gui Controller und View umfassen, und Fachlogik und Datenhaltung zusammen bilden das Model.
 
mihe7

mihe7

Hier im anhang befindet sich die AUfgabe @mihe7
In dem Fall ist das DAO der Teil, der den Zugriff auf die Datenquelle kapselt. Implementierungen können z. B. den Zugriff auf Dateien, Datenbanken, Hashtables, Collections usw. regeln.

In der Regel läuft das so, dass Du ein konkretes DAO instantiierst und Deiner Fachlogik mitgibst (dependency injection), die natürlich ein beliebiges Objekt mit IDao-Schnittstelle erwartet.
 
mihe7

mihe7

Sorry, den Anhang hatte ich ganz übersehen. Ich schaue es mir evtl. nachher einmal an, wenn ich nicht zu müde bin :)
 
mihe7

mihe7

Mal ein Fehler, der mir aufgefallen ist:
Java:
    public AudioerfassungView(Stage stage, Audio audio) {
        this.primarstage = primarstage;
Muss wohl
Java:
    public AudioerfassungView(Stage stage, Audio audio) {
        this.primarstage = stage;
heißen.

Dann bekommst Du natürlich eine NPE, wenn Du Dein bild in
BilderfassungView bild = new BilderfassungView(stage,null);
mit null initialisierst und später einfach darauf zugreifst. Im EventHandler von bildneu gibst Du dagegen richtigerweise ein neues Bild mit.
 
Thema: 

3 Schichtenarchitektur , IDAO

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben