Warum einfach wenns kompliziert auch geht?

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo erstmal,

Ich besuche eine Schule mit Programmierunterricht. Wir haben das erste Jahr nun Java. Meiner Meinung ist der Professor der uns unterrichtet sicher intelligent und gut. Er stellt sehr einfache Beispiele doch seine Lösungsvorstellungen sind für mich einfach nicht nachvollziehbar d.h. ich versteh sie eigentlich schon aber es gibt immer eine viel viel einfachere Lösung (wahrscheinlich hab ich den Sinn von OOP nicht verstanden).

Hier ein Beispiel:

wir sollen ein Fenster erstellen mit 3 Textfields und einen Button zum Speichern der Texte in diesem Textfield in eine vorgegebene Datei.

Mein Lösungsvorschlag:
beim Drücken des Buttons den im Fenster implementierten "Listener aufrufen" die Texte aus den Textfields holen und abspeichern. TOTAL EINFACH!

Seine Lösungsvorstellung:
Jedes Textfield besitzt sein eigenes Modell (k.A. was genau er damit meint, ich glaub dass ein TextField zuerst vererbt werden soll??)
Beim Drücken des Buttons wird eine ListenerMethode in einer anderen Klasse aufgerufen die sich von der FileWriterKlasse ableitet und ActionListener implementiert.
Die Texte aus den Textfeldern lesen sollte dann wohl über den ListenerMethode textChanged funktionieren oder so irgendwie...

NUN meine Frage an euch: was ist an welcher Lösung besser??? Ist meine Lösung eher nicht OOP??
 
G

Gast

Gast
Entschuldigung für meine Grammatik- und Rechtschreibfehler, hab die Nachricht nicht durchgelesen!
 
B

Beni

Gast
Also das mit den Models: Jedes Textfeld (sofern ihr Swing verwendet), besitzt eine Variable des Types "Document". In diesem Document stehen Dinge wie, welcher Text, welche Farbe, fett oder normal... drin.
Dein Prof wird mit Model dieses Document gemeint haben (also nix mit ableiten).

Seine Lösung ist eine strikte Trennung zwischen View (=Button, Fenster und Textfelder), Model (=die Documents der Textfelder) und einem Controller (=die Klasse, welche ActionListener implementiert).

Durch diese Trennung kann er z.B.:
-die Oberfläche austauschen, und anstelle von einem Button selbst was zeichnen.
- die Daten austauschen, ohne dass er nur 1 Bit an der Oberfläche ändert.
- Anstelle des FileWriters (ok, wieso davon erben, verstehe ich auch nicht) durch eine Klasse ersetzen, welche EMails verschickt...

Du siehst, mit diesem MVC-Pattern kann er ein extrem dynamisches Programm zusammenbauen.

Ob sich das für 3 Textfelder lohnt ist eine andere Frage, aber hey: es ist ein Beispiel! :wink:
 
G

Gast

Gast
Jetzt weiß ich wie sich das unser Professor wirklich vorgestellt hat:

Es gibt 3 Klassen:
1. enthält alle Steuerelement (3 Textfielder, 1 Button zum Speichern der Texte
2. eine DataModel Klasse welche eine Focuslistener implementiert und die eingegebene Texte zwischenspeichert
3. eine Ableitung von FileWriter welche ActionListener implmentiert und das DataModel "kennt".

Beim Drücken des Buttons wird actionPerformed aufgerufen und die Texte in eine Textdatei gespeichert.

Ich sehe in diese Lösung allerdings nichts besonders sinnvolles es ginge doch einfacher auch?

Was haltet ihr davon???
 

messi

Bekanntes Mitglied
Du solltest genau das machen, was dein Professor von dir verlangt. Dies ist eine Übung zu einem Software-Design-Muster. Es geht nicht darum, zu einem konkreten Problem, die beste Lösung zu finden.
 

Wildcard

Top Contributor
messi hat gesagt.:
Du solltest genau das machen, was dein Professor von dir verlangt. Dies ist eine Übung zu einem Software-Design-Muster. Es geht nicht darum, zu einem konkreten Problem, die beste Lösung zu finden.
Welches Pattern soll das denn sein? ???:L
 

messi

Bekanntes Mitglied
Wildcard hat gesagt.:
messi hat gesagt.:
Du solltest genau das machen, was dein Professor von dir verlangt. Dies ist eine Übung zu einem Software-Design-Muster. Es geht nicht darum, zu einem konkreten Problem, die beste Lösung zu finden.
Welches Pattern soll das denn sein? ???:L
Ich bin davon überzeugt, daß sein/ihr Professor MVC will und daß Abweichungen davon eine falsche Problemwiedergabe ist. Oder was meinst du?
 

Wildcard

Top Contributor
Naja,
1) MVC ist kein Design-Pattern sondern ein Paradigma
2) ein Model das ein FocusListener ist??? :autsch:
 
G

Gast

Gast
Das Problem ist wir sollten von selbst auf solch eine Lösung kommen. Und diese Vorgehensweise lässt sich nicht auf alle weiteren Aufgaben zuschneiden, es ist jedesmal eine anderes Muster
 
G

Guest

Gast
also MVC ist common, dos die einzelnen implementierungen anders sind ist klar (wenn man nur rein den text vergleicht). und wenn euer dozent wollte das ihr von selbst darauf kommt, dann habt ihr doch bestimmt vorher schon mal MVC durchgekaut, oder?
 
G

Gast

Gast
Ich habs mal so programmiert wie der Prof. es sich vorstellt und bin auf ein blödes Problem gestoßen:

Wenn ich die Texte in dem DataModel speichern möchte dann ruf ich ja die focus Listener Methode auf indirekt auf.

Was soll ich nun speichern? den Text oder das gesamte Objekt, denn wie erfahre ich das jeweilige Object schon seinen Text in das DataModel eingeschrieben hat. Das lässt sich doch nur mit einem sehr speziellem Code schreiben und nicht einfach und elegant wie es mit der kürzeren Variante möglich wär :/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
M einfach verkettete Liste verstehen Allgemeine Java-Themen 23
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
OSchriever Einfach verkettete Liste ändern Allgemeine Java-Themen 43
HarleyDavidson Eigener PropertyChangeListener funktioniert einfach nicht Allgemeine Java-Themen 3
F Login einfach "ausbauen" Allgemeine Java-Themen 10
F BlueJ Java/Bluej Bug oder einfach nur Dummheit?? Allgemeine Java-Themen 5
O Programm wird einfach "gekillt" Allgemeine Java-Themen 3
C Eclipse Startet einfach nicht Allgemeine Java-Themen 6
S Javadoc hört einfach auf Allgemeine Java-Themen 4
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
L JAR verändern - JAVAC soll einfach nur kompilieren, ohne Prüfungen Allgemeine Java-Themen 16
L RMI Die richtigen Policy-Einstellungen oder einfach Signieren? Allgemeine Java-Themen 3
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
T Thread beendet sich "einfach so"? Allgemeine Java-Themen 13
D Einfach verkettete Liste Allgemeine Java-Themen 3
N HTML2TXT ganz einfach Allgemeine Java-Themen 6
X einfach verkettete Liste und Insertion Sort Allgemeine Java-Themen 3
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
4 ich steige einfach nicht durch Allgemeine Java-Themen 5
J XML: JDOM + builder.build() hängt einfach Allgemeine Java-Themen 3
J Merkwürdiger Fehler: Applikation hängt einfach, Quartz-bug? Allgemeine Java-Themen 6
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
H will einfach nicht sortieren! Allgemeine Java-Themen 23
G Einfach Mathe – Problem. Allgemeine Java-Themen 7
R Bild wird trotz allem einfach nicht angezeigt. - AHHHHH!!!!! Allgemeine Java-Themen 30
E Schaffe es einfach nicht daten innerhalb von 2 klassen zu üb Allgemeine Java-Themen 4
C Methodenkopf: Zu was wenns auch ohne geht? Allgemeine Java-Themen 3
T Klasse mit neuer Eigenschaft für jede Subclass (kompliziert) Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben