Samuel schrieb:
> Das ganze fachliche Konzept sieht so aus:
Das ist kein Konzept.
Das ist maximal eine Vorstudie, wie eine Benutzeroberfläche aussehen
könnte.
> Der user trägt in Textfield1 irgendwas.... z.B. seine Name dann wird er
> Enter drücken.
>
> nach dem Drücken wird der Name bzw.(Value von der textfield1) in der
> Database gelesen und der dazugehörige Vorname in der textfield2
> reinkopiert.
Eben. Dazu muss aber die Database nichts vom Mainwindow wissen.
In deinem Fall muss das Minwindow von der Database wissen, wenn man
dieses Drücken von Enter nicht überhaupt aus dem Mainwindow insofern
raushält, dass es seine Applikation darüber benachrichtigt, dass eine
Engabe abgeschlossen wurde und die Applikation alles weitere in die Wege
leitet.
Zuständigkeiten! Warum glauben einem das die Neulinge nie?
1 | +----------------+
|
2 | | Applikation |
|
3 | +----------------+
|
4 | ^ | ^ |
|
5 | | | | |
|
6 | +--------+ | | +------+
|
7 | | +--------+ +------+ |
|
8 | | | | |
|
9 | | v | v
|
10 | +-------------+ +-----------+
|
11 | | Mainwindow | | Datenbank |
|
12 | +-------------+ +-----------+
|
lies die Pfeile als 'kommuniziert mit' (im Sinne von Funktionsaufrufen).
Die Applikation erzeugt das Mainwindow und auch das Datenbank-Objekt.
Wenn das Mainwindow etwas hat, was abgeschlossen ist, benachrichtigt es
seine Applikation, die sich die Daten holt und zb. in eine Datenbank
schreibt. Sie könnte die Daten auch per EMAil veschicken, aber bei dir
schreibt sie die eben in die Datenbank. Was mit den Daten geschehen
soll, interessiert aber weder das MainWindow noch das Datanbank Objekt.
Das MainWindow interessiert sich deswegen nicht dafür, weil seine
Zuständigkeit damit beendet ist, wenn die Eingabe gemacht wurde. Was
weiter mit den Daten zu geschehen hat, ist nicht sein Bier.
Das Datenbank Objekt wiederrum interessiert sich nicht dafür, wo die
Daten herkommen, die es in die Datenbank zu schreiben hat oder aus ihr
zu lesen hat. Wenn es von der Applikation den Auftrag kriegt etwas zu
schreiben, dann macht es das. Aber ob die Daten per EMail oder
Brieftaube eingetroffen sind, das interessiert es nicht die Bohne.
Der verbindende Kit, das ist die Applikation. Dort werden die Objekte
erzeugt und dort ist auch die Logik beheimatet, welche Daten von wo nach
wohin gehen. Die könnten ja auch von der Datenbank zum Drucker gehen.
Egal wer wohin geht, die Applikation ist die Schaltzentrale.
In manchen Fällen kann man in Qt der MainWindow Klasse auch die Aufgaben
der Applikation übertragen. Aber allzuoft stellt sich dann zu einem
späteren Zeitpunkt heraus, dass die Idee nicht so gut war, wie man
zuerst dachte.