![]() |
AW: Class Var vs Var
Dein TGlobalix Beispiel ist sozusagen ja nur die akademische Variante von proceduralen globalen Variablen. Globale Klassen sind eher sinnvoll für Klassen vom "Typ SysUtils". Globale Variablen haben mich mal fast meine Existenz gekostet. Ernsthaft, ich war kurz vom Hinschmeißen. Mein Code (ca. 250.000 Zeilen) war schlicht nicht mehr wartbar. Hat ein Jahr gedauert bis ich die eliminiert hatte (Ohne Christian und Detlef hätte ich’s wohl überhaupt nicht geschafft). Seither versuche ich mich im Wesentlichen an die "Guinnes Directive" zu halten: "Variablen so weit verstecken wie möglich". :)
|
AW: Class Var vs Var
Zitat:
|
AW: Class Var vs Var
Und nicht globale Variablen und globale Abhängigkeiten vermischen.
Globale Variablen haben als Teilaspekt auch die globale Abhängigkeit, aber zudem auch noch weitere Nebeneffekte, wie das unkontrollierte und ungeschützte Verändern der Werte. Mit den Abhängigkeiten kann man sich noch arrangieren, das Verändern kann einem das Leben schwer machen (warum ist denn da jetzt 42 drin :shock:) |
AW: Class Var vs Var
Zitat:
Die Frage, die sich da natürlich stellt ist die: Wenn nur eine einzige Klasse etwas globales verwendet (weil es im Framework nun einmal global ist), gilt das dann? :stupid: |
AW: Class Var vs Var
Also ohne globale Variablen (die da)
Delphi-Quellcode:
ja, darauf kann man komplett verzichten.
interface
var GlobalBadVar : TSomeType; Globale Konstanten sind egal (die ändern sich ja eh nicht) Ohne Globale Abhängigkeiten -> NEIN Denn selbst mit DI hat man einen globalen ServiceLocator und damit schon mal eine Abhängigkeit. Allerdings hat man eben nur eine und mehr sollten es im Idealfall nicht werden. Und diese Abhängigkeit sollte auch sehr flexibel sein. Aber du hast schon damit Recht, man braucht halt einen Nagel wo man alles dran aufhängt, sonst baut man ein Luftschloß ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz