bestimmte variablen global verfügbar...

Alles rund um die Programmierung mit Qt
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

bestimmte variablen global verfügbar...

Beitrag von DBGTMaster »

Hallo,

nehmen wir an, wir haben eine Applikation, wenn diese mit dem Paramter -x aufgerufen wird, sollen bestimmte Methoden / Funktionen bestimmte Aktionen ausführen...

Wie würdet ihr das am besten umsetzen, so das ich in den jeweiligen Methoden überprüfen kann, ob Parameter gesetzt??
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: bestimmte variablen global verfügbar...

Beitrag von DBGTMaster »

Was ich gedacht habe, ist, eine Art Registry zu bauen, welche Anwendungsweit verfügbar ist..

main.cpp:

Code: Alles auswählen

Registry::set("xModeEnabled", QVariant(true));
andereDatei.cpp:

Code: Alles auswählen

if (Registry::get("xModeEnabled").toBool()) {
  doSomething();
}
Oder gibt es bessere Ideen?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: bestimmte variablen global verfügbar...

Beitrag von upsala »

Ich habe ein ähnliches Konzept in einem Java-Programm umgesetzt und habe irgendwann festgestellt, daß es weniger Fehleranfällig ist, Konstanten zu verwenden statt Strings als Schlüssel. (Wobei man beide Möglichkeiten auch mischen könnte).
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: bestimmte variablen global verfügbar...

Beitrag von DBGTMaster »

was heißt "so ähnlich" gelöst? Mir würde dein genauer Lösungsweg interessieren....

lg
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: bestimmte variablen global verfügbar...

Beitrag von franzf »

Er schrieb doch nicht "so ähnlich gelöst" sondern "ein ähnliches Konzept" ;)

Generell:
Wenn du (sich zur Laufzeit ändernde) Informationen an zentraler Stelle speicherst und diese an mehreren unabhängigen Stellen im Programm brauchst, hast du zwei Optionen:
1) Zugriff über Singleton/globale Variable/statische Funktionen/...
2) Das entsprechende Objekt (objekt)lokal speichern und eine Referenz darauf herumreichen.
1) ist die einfachere Lösung, da 2) einen recht tiefen Eingriff in bestehende Projekte bedeuten würde und einen gewissen API-Overhead erzeugen kann.
Dafür ist 2) aus OOP-Sicht die schönere Lösung: Halte Objekte so lokal wie möglich. Wenn man immer den einfachsten Weg sucht, macht man am Ende für alles was man nur einmal braucht die Lösung 1), dann kann man aber auch gleich C programmieren :P
Antworten