Zuweisbare typisierte Konstanten
Zitat von
Chewie:
Zitat von
Christian Seehase:
man könnte diesen Satz dann aber z.B. wie folgt ergänzen:
, was dann zur Folge hat, dass die Prozedur keinen definierten Zustand hat, wenn man sie aufruft.
(es kann zumindest unübersichtlich werden den Anfangszustand zu kennen)
Einen definierten Zustand hat sie schon, nur erkennt man ihn von außerhalb nicht
Wenn der Wert der Variablen nur die Prozedur selbst was angeht, dann muss dieser Wert nicht von außen übergeben werden. Sinn macht es z.B. beim Protokollieren in eine Textdatei, in der man mit einem Zähler z.B. die Zeilennummer reinschreiben kann.
Sinn machen sie also dann, wenn nur die prozedur selbst, aber nicht der Aufrufer den Wert kennen muß oder kann, und der Wert aufgrund vorheriger, instanzübergreifender Aufrufe bestimmt werden muß. Der Aufrufer kann den Wert gar nicht übegeben, weil er ihn gar nicht kennt. Sinnvolle Verwendung findet dies z.B. bei der Implementation einer Singleton - Klasse. Es gibt also Dinge, für die typisierte Konstanten die elganteste, oder gar einzig sinnvolle Möglichkeit der Implementation in Object-Pascal darstellen. Ungeschickt ist nur die Deklaration (das Ding solte eigentlich nicht const heißen), nicht was das Ding tut.
Globale Variable
Variable sind Dinge, die vom Programm geändert werden. Hier verstößt die Verwendung Globaler Variablen gegen das Kapselungsprinzip, macht das Programm unübersichlicher. Verpacken in eine Singletonklasse und Zugriff über Getter und Setter erhöht die Übersichtlichkiet des Programms und verringert die Gefahr falscher Zugriffe auf die Variable.
Die Formvarable (Form1 :TForm) sind globale Variable, man schaue sich einfach mal an, was passeiert, wenn von einer Form, die sich ein zugehöriges Datenmodul erzeugt, mehrere Instanzen exisistieren, und dann wundern.
Globale Konstanten
Hier will ich nicht unbedingt etwas gegen sagen, außer daß Verpacken in eine Singeltonklasse es eventuell leichter machen könnten, später mal Dinge daran transparent für den Rest des Programmes zu ändern. Z.B. wenn bei es bei Internationalisierung plötzlich nicht mehr einen Mehrwertsteuersatz gibt, und man das Programm einfach auf andere Sprachen (und damit Mehrwertsteuersätze) umschalten können will.
Grüsse
Woki