Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Was bringt mir ein Singleton? (https://www.delphipraxis.net/120079-bringt-mir-ein-singleton.html)

GroHae 5. Sep 2008 13:11


Was bringt mir ein Singleton?
 
Hallo zusammen,

mir ist nicht ganz klar was ich gewinne wenn ich, an statt eine globale Variable zu nutzen, das Singleton-Muster nutze.

Beispiel:

Ich habe eine größere DB-Anwendung. Bei Programmstart wird eine Instand FMeineDB von TMeineDB erstellt. Immer wenn ich jetzt was brauche sage ich FMeineDB.XYZ

Was habe ich davon wenn ich jetzt aus TMeineDB ein Singleton mache?

HeinzJ 5. Sep 2008 13:17

Re: Was bringt mir ein Singleton?
 
Wikipedia: Singelton/Vorteile

GroHae 5. Sep 2008 13:23

Re: Was bringt mir ein Singleton?
 
Hi,

danke erst mal für die schnelle Antwort.

Zitat:

* Das Muster bietet eine Verbesserung gegenüber globalen Variablen.
Was sind das für Verbesserungen?

SirThornberry 5. Sep 2008 13:45

Re: Was bringt mir ein Singleton?
 
steht ein stück weiter oben ;-) Unter anderem das nur eine Instanz existieren darf.

Elvis 5. Sep 2008 13:57

Re: Was bringt mir ein Singleton?
 
Die Vorteile sind zwar da, aber nur marginal. Denn Singletons sind selbst ein Zeichen für zumeist furchtbare Designschwächen und dienen dem witzlosen gleichen Zweck wie globale Vars auch:
Globalen Status halten.

Das ist aber weder sinnvoll noch muss man das haben. Es wird immer einen Punkt geben, wo du einmalig einen Wert übergeben kannst, der dann für deine Anwendung, oder für den Code, der damit zu tun hat, einmalig ist.
Das kann dein Anwendungscontroller sein, das kann auch der Controller deines Hauptforms sein.
Wenn man nur die Quick&Dirty Struktur verfolgt, die einem die VCL anbietet, dann wäre es das Hauptform selbst.

Und auch da muss es keine Variable sein. Du bekommst den Wert im Konstruktor (oder setzt ihn dort selbst) und lässt andere nur über eine readonlyEigenschaft darauf zugreifen...

GroHae 5. Sep 2008 14:48

Re: Was bringt mir ein Singleton?
 
Ja Singletons ist ein Warnsignal, ich würde es aber nicht verdammen.

Wenn ich in meiner Anwendung eine saubere Trennung der Schichten habe brauche ich irgendwo/irgendwie einen Zugriff auf meine DB Schicht. (Ich arbeite nicht mit den visuellen DB Komponenten). Warum nicht über eine globale Variable oder ein Singelton?

Das selbe gilt meiner Meinung nach auch für ein Fehlerprotokoll.

Mal am Wochenende drüber nachdenken...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 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