Java Tutorials für modularen Aufbau einer Java Applikation

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich bin es mal wieder, heute wollte ich einfach mal Fragen, ob ihr gute verständliche Tutorials kennt, für einen Modularen Programmaufbau einer Java Applikation.

Mein Problem ist, das ich eine Shopschnittstelle schreibe für Warenwirtschaftsysteme.
Allerdings würde ich gerne viele Programmteile ausgliedern in eigene Module, was ja auch Sinn machen sollte.

Ich bin kein Java Anfänger mehr, aber tue mich in vielen Dingen noch schwer.

Vielleicht kennt ihr ja einige Tutorials.
Besonders interessiert mich dabei die GUI Steuerung, sprich Aufrufe einzelner Panels.

Ich habe mir das das halt so vorgestellt, dass ich z.B. ein Modul Kunde habe, was eine GUI hat, sowie den technischen Teil dahinter, allerdings dann als Modul in die Hauptanwendung geladen wird, beim Aufruf eines Buttons z.B. in der Hauptanwendung.

Grüße DJ
 
Schau dir mal das MVC-Pattern an. Damit kriegst du eine einigermaßen saubere Trennung der einzelnen Bestandteile.
 
Daran versuche ich mich schon immer zu halten, auch wenn ich das nicht so leicht finde bei manchen Dingen.

Es geht mir allerdings eher um das Ausgliedern einzelner Programmteile in eigene Projekte, die aber später zum Gesamtprogramm gehören sollen, allerdings leicht austauschbar sein sollen, oder halt leicht zu ändern sein sollen.

Stichwort wäre hier glaube ich OSGi, Classloader, Interfaces

Leider finde ich keinen leichten Einstieg in diese Dinge.
 
Jepp. MVC ist hier das Stichwort.

Und programmiere eine schöne Schichtenarchitektur (zB wie diese, wenn das zu deinem Programm passt). Achte auch auf das Single-Responsibility-Prinzip und darauf, dass alle Komponenten deines Programms möglichst lose miteinander gekoppelt sind.

Es empfiehlt sich, ein Buch über Softwarearchitektur und Software Engineering zu lesen. Da ist (normalerweise) sehr gut beschrieben, nach welchen Konzepten man erfahrungsgemäß ein Programm aufbauen sollte.
 
Ich glaube es kommt noch nicht ganz rüber was ich machen will.

Also meine Anwendung hat eine HauptGUI diese hat einen Controller und ein Modell soweit so gut.
Dann gibt es aber Untermodule z.B. Kundenverwaltung, diese hat auch eine GUI ein Controller und ein Modell.

Jetzt würde ich gerne das komplette Kundenmodul ausgliedern in eine eigenes Projekt, denn es kommt ja auch noch ein Artikelmodul später dazu, genauso habe ich ein Update Modul usw.

Diese Dinge kann man doch super ausgliedern in Projekte und später zu einem Projekt zusammen fügen oder nicht ?

So habe ich später nicht eine Riesen .jar mit 25mb sondern viele kleine die modular geladen werden beim Aufruf in der Main jar
 
Mich wundert auch, warum hier von MVC statt OSGi geredet wird... offensichtlich scheint aus deiner Beschreibung - warum auch immer - nicht ganz klar hervor zu gehen, auf welcher Abstraktionsebene du deine Modularisierung haben willst...

Evtl wäre uch RCP ein Stichwort, das in Frage kommt...
 
Das kommt drauf an, wie tief Du da einsteigen willst.

1. MVC oder eine Variante davon ist sicher sinnvoll. Wichtig ist in jedem Fall eine Trennung von Domain/Fachlichkeit und View/User-Interface.
2. Ein anderer Gedanke sind Layer/Schichtenmodelle. Ich habe immer im Minimalprogramm einen View-Layer für den UI-Code, einen Service/Business-Layer für die Fachlogik/ViewModels, und darunter einen Datenbank- und Domainmodel-Layer.
3. Das Dependency Injection Pattern sollte einem was sagen: http://www.heise.de/developer/artikel/Dependency-Injection-817926.html
4. J2EE bietet einem ein Framework an, in dem man Programmteile/Module/Komponenten als "Beans" modellieren kann. Wenn J2EE zu viel des guten ist (zB wegen dem Application Server), schau mal nach Frameworks wie "Unity".
 
Zuletzt bearbeitet:
DJ_We$t schrieb:
Jetzt würde ich gerne das komplette Kundenmodul ausgliedern in eine eigenes Projekt, denn es kommt ja auch noch ein Artikelmodul später dazu, genauso habe ich ein Update Modul usw.

genau dafür ist OSGi da, aber für ein Tutorial ist das ganze eben zu umfangreich. Du benötigst erstmal einiges an Erfahrung in Softwarearchitektur um deinen Code überhaupt so stark entkoppeln zu können, um effektiv Module bilden zu können. Und dann musst du dich eben noch in OSGI einlesen.

Und OSGI ist alles andere als einfach, es kann sofort funktionieren oder man ist fast am verzweifeln.

Eventuell ist es auch ganz sinnvoll, das ganze auf Eclipse RCP aufzubauen, da hast du direkt eine OSGI-Platform mit nem fertigen UI-Framework in das du dich nur "einhängen" brauchst. Du kannst auf jedenfall weniger Kopplungsfehler machen, immerhin wird dein Code sowieso immer nur ein Modul sein.
 
Zurück
Oben