![]() |
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? |
Re: Was bringt mir ein Singleton?
|
Re: Was bringt mir ein Singleton?
Hi,
danke erst mal für die schnelle Antwort. Zitat:
|
Re: Was bringt mir ein Singleton?
steht ein stück weiter oben ;-) Unter anderem das nur eine Instanz existieren darf.
|
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... |
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 23:57 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