Beispiel für MVC gesucht

Status
Nicht offen für weitere Antworten.

SamHotte

Top Contributor
Moin,

schon seit einer Weile versuche ich, das MVC-Muster in mein aktuelles Projekt einzubauen, aber jedes Mal, wenn ich was darüber lese, habe ich das Gefühl, ich blicke es gar nicht mehr. Leider helfen mir die vielen Beispiele z. B. auf Wikipedia auch nicht, denn nirgends gibt es mal tatsächlich Code zu sehen, wie man das programmiert.

Hat jemant vielleicht ein echtes Beispiel parat, in dem mal eine Beispiel-GUI mit Datenbankzugriff nach MVC programmiert ist?

Dank im Voraus!
 

AlArenal

Top Contributor
Ganz Swing ist MVC. Sourcecode findest du im JDK ;) Beispiel-Anwendungen übrigens auch, es macht sich nur nie einer die Mühe sie sich anzuschauen...
 

SamHotte

Top Contributor
Mir geht es nicht um eine einzige Swing-Komponente, sondern um 'ne etwas komplexere GUI mit diversen Aktionen, Ansichten, lesenden und schreibenden Datenbankzugriffen etc. Meines geringen Wissens nach basieren MVC-Architekturen auf dem Observer-Pattern, richtig? Dann müsste sich ja irgendwo unter c:\jdk\demos ein "Observer" finden lassen, was bei mir (jdk1.5.0_03) leider nicht der Fall ist.
 

SamHotte

Top Contributor
@stevg: leider nein, denn ich brauche irgendwo einen Lichtblick für die Gesamtarchitektur einer Anwendung mit MVC. Die typischen Hello-World-ähnlichen Beispiele bringen keinen Durchblick :-(
@AlArenal: danke für den Tipp, bin ja mal gespannt, wie umfangreich das Teil ist :)

edit: wieso kann mein traurig-emoticon
Code:
:-(
nicht dargestellt werden :bahnhof:
 

AlArenal

Top Contributor
BlogBridge ist relativ umfangreich, deckt aber viel ab. Vom Eigenbau von Swing-Komponenten, über Multithreading, JDBC und Integration von HSQLDB, ....
 

SamHotte

Top Contributor
Ich seh' dann mal zu, dass ich heut abend zu hause die Sourcen 'runterlade (geht hier in der Arbeit nicht). Brauche ich die HSQLDB da auch gleich für?
 

AlArenal

Top Contributor
Wenn du das fertige Teil runterziehst, ist da alles mit bei, was du brauchst. Wenn du dir die Sourcen von HSQLDB auch noch antun möchtest oder brauchst, wirste die auch noch ziehen müssen, klar.
 

SamHotte

Top Contributor
Nene, Datenbank-Sourcen gehen dann doch etwas zu weit für den Moment, ist auch so genug zu lesen, denke ich :)
 

SamHotte

Top Contributor
Lt. Wikipedia wird die Kommunikation im MVC mit dem Observer-Muster realisiert - für mich klingt das nach "MVC baut auf Observer auf" ???:L
Bin ich zu blond oder stimmt am Wiki was nicht?
 
B

bygones

Gast
jein - MVC ist ein allgemeingültiges Prinzip. In Java wird es durch das Observer pattern realisiert.

Wenn man es ganz genau nimmt baut keiner auf dem anderen auf. Es sind zwei Patterns die sich z.T. benutzen, aber das eine ist keine Teilmenge des anderen.

Mit meiner Aussage meinte ich, MVC ist allgemeiner als Observer Pattern
 

SamHotte

Top Contributor
Leider sind die Sourcen beim Installer nicht mit dabei. Irgendwas ist zwar bei SourceForge, aber da müsste ich jede Datei einzeln herunterladen, oder gibt's da 'nen Trick?
 

SamHotte

Top Contributor
Hab den "HEAD" ausgecheckt (mit Eclipse 3.1.2), und jetzt werden einige Libraries vermisst, die ich im CVS nicht finde:
- lib/binding-1.0.jar
- lib/forms-1.0.5.jar
- lib/uif-1.4.jar
- lib/uif-extras-1.4.jar

Jemand eine Ahnung, wo ich die herbekomme?
 

SamHotte

Top Contributor
Hm. Grad zum zweiten mal (aus Eclipse heraus) gemacht, wieder nix, die Libraries fehlen. Hab leider keine Erfahrung mit CVS ohne Eclipse; im Projekt sind andere Versionen (jeweils eine weiter) vorhanden, stimmt da vielleicht nur was an den Einstellungen nicht? Ich kann ja schlecht deinen Befehl in die normale Windows-Kommandshell eintippen, oder?

EDIT: hatte mir vorher den Win-Installer geholt, da sind keine Sourcen drin.
 

AlArenal

Top Contributor
Ich benutze TortoiseCVS für CVS und ToirtoiseSVN für SVN außerhalb von Eclipse. Sind im Grunde Erweiterungen des Windows File-Explorers.

Ah ich sehe schon, in Eclipse schauts anders aus.. mal sehen... Hier findest du in z.B. was in

/Versions/blogbridge/blogbridge release-2-13-stable

Da ist auch alles drin. (Libs liegen z.B. in /lib)
 

SamHotte

Top Contributor
Jetzt fehlt was anderes ... "lib/quaqua-menu-only.jar" ... ist vielleicht doch etwas zu viel Aufwand, nur um das Pattern mal zu schnallen. Vielleicht finde ich ja doch mal irgendwo ein einfaches Beispiel für Pattern-Nixchecker wie mich ;-)
 

AlArenal

Top Contributor
Woher willst du eigentlich wissen, dass diese Datei fehlt? War da ne Eclipse-Projekt-Datei bei? Wenn ja - vergiss sie! Die muss nicht auf dem Stand der Dinge sein, Pito benutzt nämlich Netbeans und ne Datei mit "aqua" im Namen riecht nach Mac OS X (was allerdings wieder zu Pito passen würde) ....
 

SamHotte

Top Contributor
Ich hab nur das Projekt ausgecheckt, und eclipse meckert, dass sie (er? es?) wegen dieser fehlenden Lib nicht kompilieren kann. Dabei wird die Projektdatei eigentlich automatisch erstellt, dachte ich; da ich NetBeans noch nie benutzt habe, weiß ich auch nicht, ob die sich vielleicht nicht mögen ... soviel zum ersten Versuch, open source quelltext anzuschauen :)
 

AlArenal

Top Contributor
Warum, anschauen kannst du ihn ja :p

Aber wenn Eclipse ne ganz bestimmte Lib anmeckert, muss es ja von der was wissen und das kann es nur, wenn da ne Projekt-Datei von Eclipse drin war und die muss nunmal nicht zwingend den aktuellen Stand der Dinge repräsentieren, da nirgends geschrieben steht dass die Jungs auch Eclipse benutzen (wie gesagt, Pito benutzt NetBeans).

Lösch die, importier das Projekt neu inkl. der vorhandenen Libs und dann schau nochmal in Ruhe.
 

SamHotte

Top Contributor
Anschauen ist aber m. E. nur sinnvoll, wenn ich auch das Programm mal sehe; nur der Quelltext ist dann doch zu abstrakt ... :bahnhof:

Danke erstmal für die Anregung, ich teste das heut abend mal.
 

AlArenal

Top Contributor
SamHotte hat gesagt.:
Anschauen ist aber m. E. nur sinnvoll, wenn ich auch das Programm mal sehe; nur der Quelltext ist dann doch zu abstrakt ... :bahnhof:

Danke erstmal für die Anregung, ich teste das heut abend mal.

Du hast doch letze Woche noch die Binaries gezogen. Ich dachte du hast das Teil schon lange laufen....
 

SamHotte

Top Contributor
Bringt doch nix, wenn ich nicht an die richtigen Stellen im Quelltext komme, und das wollte ich mit dem Debugger machen; das Programm selbst interessiert mich nicht wirklich, nur die Umsetzung von MVC ...
 

SamHotte

Top Contributor
Naja, seis drum. Ich blick durch den Code eh nicht durch, ich finde nicht einmal die allererste in main() aufgerufene Methode, somit kann ich das auch als MVC-Lehrstück leider vergessen, fürchte ich.

Jemand eine andere Idee, wie man sich das beibringen kann?
 

AlArenal

Top Contributor
So ein Blick in das JNLP-Template wirkt Wunder:

Code:
<application-desc main-class="com.salas.bb.core.ApplicationLauncher">
 

SamHotte

Top Contributor
Danke, soweit war ich auch schon. Aber die erste in main() aufgerufene Methode ist eine geerbte, nämlich DefaultApplicationStarter.boot -- irgendwas von "jgoodies", was auch immer das ist. Da ich keine Zeit für reverse Engineering habe, kann ich mit dem Sourcecode rein gar nichts anfangen. Oder gibt es irgendwo eine Dokumentation dazu (ich meine etwas, das über die javadoc-Kommentare hinausgeht)?
 

AlArenal

Top Contributor
Nö, wozu auch? Ist ja schließlich ne Client-Software und keine API-Lib, für die man noch groß Tutorials zum Coding schrieben sollte/müsste.

Ich weiß ja nicht was du erwartet hattest. Das man nicht "mal eben" in Sourcen einer etwas komplexere Software reinschauen kann und alles plötzlich wie ein offenes Buch vor einem liegt, sollte klar sein.
 

SamHotte

Top Contributor
Erwartet hatte ich eine Antwort auf meine Frage. Ich bin auf der Suche nach Tipps bzw. Beispielcode für eine "echte" Anwendung nach MFC, damit ich daraus lernen kann. Das von dir genannte Programm ist sicherlich ganz toll, aber zum lernen nicht geeignet, da es weder dokumentiert ist noch der Quellcode komplett ist (besagtes "jgoodies" beispielsweise, das gleich in der main()-Methode aufgerufen wird, kann ich nicht nachvollziehen).

Wenn man schon alles kann, dann kann man vielleicht auch den Sourcecode von blogbridge verstehen. Passt aber nicht zum Thread. Nicht jeder ist so ein Mega-Checker wie du. :(
 

AlArenal

Top Contributor
Der Quellcode ist komplett. Die JGoodies sind von Karsten Lentzsch (Google weiß mehr) und wenns was ist, was die Jungs von BB nicht selbst geproggt haben, isses auch nicht tragisch und für dich nicht relevant.
Als Dokuemtnation gibts Quellcode samt Javadoc und da kann man ja erstmal nen Blick reinwerfen, bevor man gleich die Beine unter den Arm nimmt, sobald einem eine Codezeile nicht auf Anhieb einleuchten mag.

Wenn ich mir anderer Leute Source anschaue würde ich mir auch manchmal wen wünschen, der mich ans Patschehändchen nimmt und mit das mit den Bienchen und Blümchen erklärt - so isses aber nicht. Manches leuchtet auch mit kompletter Doku bei gekauften Komponenten nicht ein und man muss nachhaken. Das sind aber spezifische Detailfragen.

Du wolltest ein Programm mit MVC und JDBC und da haste eins, noch dazu eins dass mir schon lange sehr gute Dienste leistet ;)
Wenn dir das too much ist, kannste bei Sourceforge & Co. tausende von anderen Projekten durchforsten, aber da wird nirgends ein LiesMichSamHotte.pdf dabei sein, dass dir alles vorkaut. Vieles muss man sich im wahrsten Sinne des Wortes erarbeiten.

Wenn du ein "Checker" werden willst, musst du da durch. Von nichts kommt nunmal auch nichts.
 

SamHotte

Top Contributor
[ ] du weißt, was Dokumentation ist.

Würdest du jemandem, der die grundsätzlichen Prinzipien eines Autos verstehen möchte, einen in seine Einzelteile zerlegten Porsche zeigen und das war's? Muss schon lange her sein, dass du mal was lernen musstest...
 

SamHotte

Top Contributor
Wenn programmieren so einfach wäre, gäb's keine Probleme ...

Ist das Forum hier eigentlich zum helfen da oder zum profilieren? :applaus:
 

SamHotte

Top Contributor
Nebenbei: die Fragestellung ist immer noch offen :)

Gesucht ist ein Beispiel für eine Anwendung nach MVC. Dabei sollen verschiedene GUI-Elemente vorhanden sein und auch Menüpunkte (de-)aktiviert werden, wenn im Kontext nicht gebraucht.
Mich interessiert vor allem die SW-Architektur, also:
1. in welcher Reihenfolge initialisiere ich Modell, Controller und Views,
2. wie sieht ein "richtiger" Controller aus,
3. wohin stecke ich den Code für die Aktionen,
4. welche Referenzen (bspw. auf die Modell-Klassen) übergebe ich von wem an wen, um Zirkel zu vermeiden,
5. wie viele verschiedene Controller-Klassen benötige ich,
6. wie funktioniert das mit den Listenern
usw.

Wenn jemand ein Beispiel kennt, das zudem keine externen Bibliotheken verwendet (insbesondere kostenpflichtige wie JGoodies nicht), wäre es extrem nett, einen Link darauf zu posten. Richtige Begeisterung käme bei einem gut dokumentierten Stück Software auf.
 

AlArenal

Top Contributor
SamHotte hat gesagt.:
Mich interessiert vor allem die SW-Architektur, also:
1. in welcher Reihenfolge initialisiere ich Modell, Controller und Views,

So, wie es für dich im Einzelfall am praktikabelsten ist.
Vielleicht kannste das Model schon aufbauen ehe du das UI anzeigst oder benötigst dafür gar schon Daten, vielleicht werden die Daten auch erst später reingeladen. Spielt auch grundsätzlich eine untergeordnete Rolle.

2. wie sieht ein "richtiger" Controller aus,

Gegenfrage: Was unterscheidet denn einen "richtigen" von einem "falschen" Controller?

3. wohin stecke ich den Code für die Aktionen,

Kannst du auch halten wie ein Dachdecker. Manche basteön für jede Action ne eigene Klasse, die von AbstractActioon erweitert, manche benutzen eine innere Klasse die z.B. ActionListener implementiert, nen parametrisierten Konstruktor besitzt und damit sowas wie ein All-in-One-ActionAdapter ist... Manche schrieben für jede Action ne eigene innere Klasse die ActionListener implementiert..

4. welche Referenzen (bspw. auf die Modell-Klassen) übergebe ich von wem an wen, um Zirkel zu vermeiden,

Das ergibt sich aus dem Interfaces (siehe z.B. #addTreeModelListener() / #removeTreeModelListener() bei TreeModel).

5. wie viele verschiedene Controller-Klassen benötige ich,

Woher sollen wir das wissen?

6. wie funktioniert das mit den Listenern

RTFM

Wenn jemand ein Beispiel kennt, das zudem keine externen Bibliotheken verwendet (insbesondere kostenpflichtige wie JGoodies nicht), wäre es extrem nett, einen Link darauf zu posten. Richtige Begeisterung käme bei einem gut dokumentierten Stück Software auf.

Völlig unangebracht von dir weil JGoodies in den Sourcen von BB für dich völlig irrelevant ist. Außerdem ist nicht alles, wo JGoodies draufsteht, kommerziell... Und "gut dokumentiert" ist für jeden was anderes. Du wirst kaum was finden, wo für Dööfchens nochmal ne Runde "Ich bin der Jean Pütz und heute erklär isch eusch ma wie das mit den Listenern funktionieren tut" erklärt ist.
 

SamHotte

Top Contributor
Danke, AlArenal. Du bist eine sehr große Hilfe. Wirklich herzlichen Dank. Falls du irgendwann mal von deinem hohen Roß herunterkommen solltest, sag Bescheid. Deine nutzlosen Beiträge a la "streng dich halt mehr an, sonst verdienst du es auch nicht" kannst du dir sparen, das bringt niemanden weiter.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Beispiel für Besuchermuster Softwareentwicklung 6
mrBrown TDD-Beispiel 2: kürzeste Pfade in Graphen Softwareentwicklung 7
M GIT Workflow an konkretem Beispiel Softwareentwicklung 24
C C Anfänger Beispiel Softwareentwicklung 4
H UML – Beispiel? Softwareentwicklung 11
M Ein etwas komplexeres MVC-Beispiel . Softwareentwicklung 2
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
V Zeitplanung für JUnit-Tests? Softwareentwicklung 9
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
G Pattern für Datenbank Anwendung Softwareentwicklung 22
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9
D Programme für UML Softwareentwicklung 3
A Was ist die richtige Lizenz für mich? Softwareentwicklung 2
R Tool für Anforderungsermittlung, Bugtracking und Test Softwareentwicklung 4
V Antwort bewerten (Nur etwas für Experten!) Softwareentwicklung 15
D cheat für ein spiel fixen Softwareentwicklung 19
F IDE für VB Softwareentwicklung 4
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
F Kleines Programm für Windows Softwareentwicklung 2
K Buch oder Online-Tutorium für Programmentwicklung (Anfänge) Softwareentwicklung 5
G Bitte Hilfe für mySQL in einem Query Softwareentwicklung 7
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
M Disclaimer für eigene Programme? Softwareentwicklung 3
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
S Open Source Software für UML Softwareentwicklung 8
R Ein Thread für eine Methode Softwareentwicklung 2
S Hilfe für anfänger Softwareentwicklung 7
I regualar expression für Konstruktoren Softwareentwicklung 4
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3
E Regular Expression gesucht: Zeichen nur finden, wenn ihm kein anderes voransteht Softwareentwicklung 2
Manello PET 2001 Basic gesucht! Softwareentwicklung 11
Z Diensttechnologie a la WebServices gesucht Softwareentwicklung 3
D 1a UI Webkomponenten Library gesucht Softwareentwicklung 26
K Zweitprogrammiersprache gesucht Softwareentwicklung 13
W Entwurfsmuster gesucht Softwareentwicklung 2
G Design Pattern gesucht! Softwareentwicklung 4
I Tool / Programm etc. zur Testdokumentation gesucht Softwareentwicklung 2
ruutaiokwu reverse engineering tool gesucht: source code -> uml klassendiagramm Softwareentwicklung 5
C Dokutool gesucht Softwareentwicklung 2
G Graphische Notation fuer Netzwerktopologie gesucht Softwareentwicklung 3
T Gesucht: Programmiersprache die man compilen kann Softwareentwicklung 21
S MDA Buch gesucht Softwareentwicklung 2
ff Suchalgorithmus gesucht Softwareentwicklung 15
T SQL-Statement gesucht die 2. Softwareentwicklung 15

Ähnliche Java Themen

Neue Themen


Oben