Application Objekt bei größeren GUI Anwendungen?



  • Wenn ihr größere Anwendungen mit GUI schreibt, also ein paar Menus und auch unterschiedliche Unterfenster mit verschiedenen Widgets usw. Habt ihr dann eine Art Application Objekt, das dann beispielsweise Konfig, Widgets, Commands Undostack etc. initialisiert?



  • Ich weiß nicht, worauf du hinauswillst. Irgendjemand muss irgendwas initialisieren, aber es ist immer besser, Gottklassen zu vermeiden. Warum muss man Widgets intialisieren? Das macht doch das entsprechende Fenster. Warum muss man einen Undo Stack initialisieren? Er wird ja auch nicht global sein, sondern gehört zu irgendwas und wird von der Komponente auch initialisiert, wenn es sein muss. Gibt auch viele Stellen, wo irgendwelche Configs gelesen werden müssen. Einige davon vielleicht auch beim Start der Application, von dem her mag es auch eine Application Klasse geben. Aber sicher keine zentrale Klasse, die alles initialisiert.



  • Vielleicht hilft es wenn ich etwas konkteter werde.

    Ich möchte eine GUI-Anwendung erstellen und dort mit dem Command Pattern die Befehle der Widgets, Shortcuts, eventuele spätere Maktobefehle verwalten lassen. In diese Falles muss ich dies alle irgendwo initialisieren, so wie man dies auch ohne dieses Pattern ja irgendwann machen muss, nur nicht so umfangreich. Genauso will ich gleich mit einem CommandProzessor arbeiten, der mir dann einen Undo-/RedoStack zur Verfügung stellt und die Aktionen gleich loggen oder auch speichern kann, falls das Programm mal während der automatischen Save-Intervalle abstürzt.

    Diese ganze Technologie muss ich irgendwo das erste mal initialisieren(Config einlesen,Instanzen der Klassen anlegen und verbinden etc.).

    Meine Frage ist, ob ihr bei solchen Anwendungen dann eine Art Initialisierung-Objekt oder was ähnliches habt? Es soll kein Gottobjekt daraus werden, was viele Aufgaben beinhaltet, sondern nur ein Singleton sein welches halt die Initial-Zündung der Anwendungen ist, wie in kleineren Programmen die Main-Methode.

    Viel genauer kann ich es jetzt auch nicht beschreiben, da ich noch in der Planung bin und ein paar Pattern ausprobieren, die mir nützlich erscheinen. Dabei kam mir halt die Frage nach eine Art Init-/ApplikationObjekt.



  • Bei mir besitzen die Fensterobjekte alles. z.B. könnte ein Chatfenster seine Netzwerkverbindung besitzen. Kein Singleton nötig. 🙂



  • Danke, ist auch eine Möglichkeit. Bei mir habe ich Daten, die in verschiedenen Fenstern dargestellt und bearbeitet werden sollen und daher wollte ich die allgemein gültige Daten+Funktionaliät von den Fenstern und Widgets entkoppeln.


Log in to reply