1) Warum verwenden wir DTO
und DAO
und wann sollten wir sie verwenden. Ich entwickle eine GUI
Java-Software zum Einfügen, Bearbeiten und Löschen von Daten. Aber ich habe Schwierigkeiten zu unterscheiden , DTO/DAO
und Model
, View
, Controller
(MVC) Struktur? Sind sie ähnlich, was besser bei der Interaktion mit der Datenbank über Java zu verwenden ist GUI
.
2) Eine Sache , die ich wirklich bin neugierig, ob es eine gute Praxis zu haben view
und Controller
in einer Klasse. Wenn wir darüber nachdenken Netbeans
, können Sie eine GUI
Rahmenklasse erstellen und Komponenten wie JButton
zum Rahmen hinzufügen. Durch Doppelklicken auf die Schaltfläche gelangen Sie zu der actionListener
Methode (Controller), die sich in dem Rahmen zu befinden scheint, in dem die Daten dem Benutzer angezeigt werden sollen (Ansicht). . Sie sind also in der gleichen Klasse. Verstößt das dann völlig gegen das Konzept oder nicht?
Hier ist, worüber ich spreche
schlechte Praxis, View und Controller in einer Klasse zu haben?
Antworten:
DTO
ist eine Abkürzung für Data Transfer Object und wird daher zum Übertragen der Daten zwischen Klassen und Modulen Ihrer Anwendung verwendet.DTO
sollte nur private Felder für Ihre Daten, Getter, Setter und Konstruktoren enthalten.DTO
Es wird nicht empfohlen, solchen Klassen Geschäftslogikmethoden hinzuzufügen, es ist jedoch in Ordnung, einige util-Methoden hinzuzufügen.DAO
ist eine Abkürzung für Data Access Object und sollte daher die Logik zum Abrufen, Speichern und Aktualisieren von Daten in Ihrem Datenspeicher (eine Datenbank, ein Dateisystem usw.) enthalten.Hier ist ein Beispiel, wie die DAO- und DTO-Schnittstellen aussehen würden:
Das
MVC
ist ein breiteres Muster. Das DTO / DAO wäre Ihr Modell im MVC-Muster.Hier erfahren Sie, wie Sie die gesamte Anwendung organisieren, nicht nur den Teil, der für den Datenabruf verantwortlich ist.
Was die zweite Frage betrifft, wenn Sie eine kleine Anwendung haben, ist dies völlig in Ordnung. Wenn Sie jedoch dem MVC-Muster folgen möchten, ist es besser, einen separaten Controller zu haben , der die Geschäftslogik für Ihren Frame in einer separaten Klasse enthält und Versenden von Nachrichten an diesen Controller von den Ereignishandlern.
Dies würde Ihre Geschäftslogik von der Ansicht trennen.
quelle