Zitat von
IngoD7:
Und notfalls baut man sich ein Objekt, dass alle Variablen als Property aufnimmt.
Dann hat man keine globalen Variablen mehr, aber ein globales Objekt mit globalen Eigenschaften.
Wenn's denn hilft ...
Au weia...
Du musst dir überlegen wann und wo du welche Werte brauchst. Und ob bzw. wie sich diese Werte intuitiv in Klassen modellieren lassen.
Nach dem du jetzt weißt wo du sie brauchst musst du dir nur einen oder mehrere Instanzen wählen, die für die eine Referenz darauf halten, und denen man zum Bleistift im Konstruktor diesen Wert übergeben kann. (Muss nicht sein, read/write Properties sind auch OK
)
Zitat:
Ich verstehe nach wie vor die angeblich vorhandene Notwendigkeit zur Vermeidung von globalen Variablen nicht.
Skalierbarkeit.
Globale Variablen sind so ziemlich das übelste was dir passieren kann.
Denn sie sind
- von überall beschreibbar
- Es gibt keinen Setter, der dich über Änderungen informieren kann
- Müllen Code completion sinnlos zu, weshalb dich wohl jeder Benutzer deiner Units verfluchen wird.
Aber auch class properties und Singletons fallen unter "beschissen zu Skalieren oder wiederverwenden".
Du verzwirbelst deinen Code so sehr untereinander, dass du einzelne Teile nicht für etwas anderes benutzen kannst. Außer durch Copy'n Waste mit anschließendem Ändern. (wodurch Bug fixes an dem einen nicht zu Bug fixes am anderen werden -> D'
oh!
)