AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Was bringt mir ein Singleton?

Ein Thema von GroHae · begonnen am 5. Sep 2008 · letzter Beitrag vom 5. Sep 2008
Antwort Antwort
GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#1

Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 13:11
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?
Grüße

Thomas
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#2

Re: Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 13:17
Wikipedia: Singelton/Vorteile
  Mit Zitat antworten Zitat
GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 13:23
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?
Grüße

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 13:45
steht ein stück weiter oben Unter anderem das nur eine Instanz existieren darf.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.902 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 13:57
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...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Was bringt mir ein Singleton?

  Alt 5. Sep 2008, 14:48
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...
Grüße

Thomas
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf