![]() |
AW: Globale Variable - Definition
Ich hab das immer so :stupid:
Delphi-Quellcode:
Bitte aber die ShortcutName()-Methode umbenennen ;)
TSingletonClass = class(TObject)
private class var FInstance; class procedure Init(); class procedure Finalize(); constructor Create(); reintroduce; public class function GetInstance(): TSingletonClass; destructor Destroy(); end; function ShortcutName(): TSingletonClass; implementation class procedure TSingletonClass.Init(); begin { ... } end; class procedure TSingletonClass.Finalize(); begin { ... } end; class function TSingletonClass.GetInstance(): TSingletonClass; begin if (not Assigned(TSingletonClass.FInstance)) then TSingletonClass.FInstance := TSingletonClass.Create(); Resul := TSingletonClass.FInstance; end; function ShortcutName(): TSingletonClass; begin Result := TSingletonClass.GetInstance(); end; initialization TSingletonClass.Init(); finalization TSingletonClass.Finalize(); |
AW: Globale Variable - Definition
gdBK sollte aber initialisiert werden!
Zitat:
|
AW: Globale Variable - Definition
Es ist zwar schon spät, aber fehlt da nicht ein ELSE-Teil?
|
AW: Globale Variable - Definition
Wo genau? Ich glaube aber nein. Das Objekt muss ja immer zurückgegeben werden. Wenn es bisher nur noch nicht existiert, dann muss es vorher noch erzeugt werden.
|
AW: Globale Variable - Definition
@s.h.a.r.k: So ähnlich mach ich es auch. Aber sollte nicht der Destruktor auch privat sein?
|
AW: Globale Variable - Definition
Zitat:
Nur bei den lokalen Variablen sieht das anders aus, denn dort wird es aus Performancegründen oftmals nicht gemacht (außer bei String dyn. Array und Interface) und bei vielem Anderem, was sonst noch von irgendwo anders herkommt (z.B. GetMem und Co.). |
AW: Globale Variable - Definition
Zitat:
|
AW: Globale Variable - Definition
Private kann der Destructer überhaupt nicht sein.
Denn wir überschreiben ja diesen und ein Nachfahre möchte dieses auch gerne tun können, was mit Private nicht möglich wäre :zwinker: Aber Protected wäre ein gutes Fleckchen dafür. |
AW: Globale Variable - Definition
Zitat:
|
AW: Globale Variable - Definition
Zitat:
Die Lösung der Probleme mit den globalen Variablen und Singleton bietet die Dependency Injection. Es braucht aber einige Wochen oder Monate bis man es begriffen und akzeptiert hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 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