# Architektur für einfaches Gui Programm



## KranzKrone (19. Okt 2012)

Hallo,

ich möchte ein einfaches Gui Programm mit ca. 3 verschiedenen Gui sinnvoll programmieren, so dass ich später Programmänderungen schnell vollziehen kann. 

Zur Zeit benutze ich die Observerpatter von Java. Weiterhin habe ich ein paar statische Klassen in denen Daten verarbeitet werden und wieder ausgegeben werden müssen. 

Wie könnte ich meine verschieden Klassen anordnen, damit ich zwischen die einzelen View und meinen ganzen Klassen gut hin und her "switchen" kann?.

Krone


----------



## faetzminator (19. Okt 2012)

Das MVC Pattern kennst du?


----------



## schlingel (21. Okt 2012)

Hier ist ein Tutorial zu MVC von Oracle. Wenn du das Observer-Pattern schon verwendest, bist du wahrscheinlich eh schon intuitiv in's MVC gegangen. 

MVP (hier auf SO ein sehr kurzes Beispiel das es klar macht). Es gibt auch noch MVVM, aber dazu hab ich jetzt keinen Link gefunden.


----------



## L-ectron-X (23. Okt 2012)

Schau dich mal in unserer FAQ um, da gibts auch sehr gute Beiträge zum Thema MVC.


----------



## KranzKrone (24. Okt 2012)

Ich möchte euch für eure Antworten erstmal danken. Das MVC Prinzip mit den Observern (JAVA) ist mir bekannt. Ich suche eine Klassenarchitektur für eine abgekapsete GUI.

Ich möchte als Beispiel eine Comandozeileneingabe und auch eine GUI haben, jedoch getrennt benutzen können (oder auch gemeinsam). Das bedeutet für mich, das ich keine Gui Elemente von meinem Modellen abhängig machen darf.

Ich suche sprichförmlich ein gutes (größeres) Klassendiagramm.

Krone


----------



## schlingel (24. Okt 2012)

> Ich suche sprichförmlich ein gutes (größeres) Klassendiagramm.


Der Satz ergibt für mich keinen Sinn. Ein Klassendiagramm ist eine Art von Dokumentation, eine Darstellung eines Systems, und kein Qualitätsmerkmal oder andere Eigenschaftsausprägung.

Edit:/ Oder meinst du einfach nur das Klassendiagramm des Patterns?
MVP






MVC





Groß ist das ja nicht. Das ist die ganze Magie.


Was funktioniert denn bei MVC oder MVP nicht? Bei MVP z.B: würdest du dein View-Interface definieren und dass dann einmal für Swing oder für die CLI ausgestalten.

Was dann verwendet wird, kannst du per Factory oder DI bestimmen.


----------



## faetzminator (25. Okt 2012)

KranzKrone hat gesagt.:


> Ich möchte als Beispiel eine Comandozeileneingabe und auch eine GUI haben, jedoch getrennt benutzen können (oder auch gemeinsam).



Das heisst, dass du ein Model, aber zwei Controller und Views gleichzeitig laufen lässt. Kein Problem.


----------

