AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Globale Variablen - warum in der DP so verpönt?
Thema durchsuchen
Ansicht
Themen-Optionen

Globale Variablen - warum in der DP so verpönt?

Ein Thema von new4toms · begonnen am 8. Mai 2005 · letzter Beitrag vom 13. Mai 2005
 
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#36

Re: Globale Variablen - warum in der DP so verpönt?

  Alt 11. Mai 2005, 13:20
Wenn jede Property mit Funktionen ausgestattet wird, dann wirds natürlich länger. Sofern das nicht nötig ist, lasse ich die Property auf die Variable direkt zugreifen. Wenns nur um Einstellungen geht, dann kann ich auf Setter-Methoden verzichten.

Ein konkretes Beispiel ist eine Klasse, die mir beim Programmstart lokalisierte Strings lädt. Im Programm greifen mehrere Threads beliebig auf diese Strings zu. Da die Properties alle nur Lesbar sind, benötige ich keine Setter- bzw. Getter-Methoden. Andernfalls könnte in denen die Thread-Synchronisation ablaufen.

Delphi-Quellcode:
type
  TMenuMessages = class(TObject)
  private
    FString1: string;
    FString2: string;
    ...
    {1 Lädt die Übersetzungen }
    procedure LoadMessages;
  protected
    constructor Create;
    constructor CreateInstance;
    class function AccessInstance(Request: Integer): TMenuMessages;
  public
    destructor Destroy; override;
    class function Instance: TMenuMessages;
    class procedure ReleaseInstance;
  published
    property String1 : string read FString1;
    property String2 : string read FString2;
    ...
  end;
LoadMessages wird im Konstruktor aufgerufen. Den Klassenrumpf vom Singleton generiert mir dabei der Modelmaker. In Wirklichkeit ist der einzige Vorteil aber, dass ich die Laden-Methode bei den Daten habe.

Eine neue Variable würde in dem Fall eine neue Property und eine Zeile in LoadMessages bedeuten.
Theoretisch könnte ich LoadMessages auch noch automatisieren indem ich von TPersistent ableite und über alle Published-Properties iteriere. Allerdings setze ich in der den Default-Wert und müsste mir dafür noch was überlegen.

Für bessere Lösungen bin ich aber immer offen.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
 


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 01:40 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