AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Class Var vs Var

Ein Thema von Perlsau · begonnen am 19. Mai 2014 · letzter Beitrag vom 19. Mai 2014
Antwort Antwort
Seite 2 von 2     12   
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Class Var vs Var

  Alt 19. Mai 2014, 09:50
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".
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

AW: Class Var vs Var

  Alt 19. Mai 2014, 11:55
Du meinst, globale Variablen wären in jedem Fall und unter allen Umständen "schlecht" und in allen Fällen grundsätzlich vermeidbar? Wenn ja, wozu gibt's die dann überhaupt? Im großen & ganzen stimme ich den zahlreichen Plädoyers gegen den Einsatz globaler Variablen durchaus zu, aber doch nicht grundsätzlich
Ich wage, zu behaupten, dass es theoretisch ganz ohne geht - allerdings steht dem meist die Praxis (und bestehender Code) gegenüber und in manchen Fällen ist es einfacher und pragmatischer, eine globale Variable zu benutzen, anstatt das ganze System von links auf rechts zu krempeln. Dennoch sollte man manchmal zweimal drüber nachdenken, ob sich das dargestellte Problem nicht anders lösen lässt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Class Var vs Var

  Alt 19. Mai 2014, 12:19
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 )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#14

AW: Class Var vs Var

  Alt 19. Mai 2014, 12:33
Ich wage, zu behaupten, dass es theoretisch ganz ohne geht
Also ganz ohne globale Konstanten/Variablen/Abhängigkeiten wirst Du eine Anwendung denn doch nicht hinbekommen. I/O z.B. wird kaum ohne gehen. Du kannst das zwar als Wrapper kapseln und per DI auflösen, aber irgendwer muss ja von außen die Abhängigkeit injizieren, und so hat der äußerste Anwendercode eben diese globale Abhängigkeit, spätestens der Wrapper selbst.

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?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Class Var vs Var

  Alt 19. Mai 2014, 13:28
Also ohne globale Variablen (die da)
Delphi-Quellcode:
interface

var
  GlobalBadVar : TSomeType;
ja, darauf kann man komplett verzichten.

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ß
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz