![]() |
Singelton mit Delphi
Hallo Zusammen!
Erst mal! Respekt! Tolles Forum! Jetzt zu meiner Frage: Weiss jemand, wie man mit Object Pascal ein Singelton implementieren kann? Ich kenne dieses Pattern aus Java. Aber in Object Pascal lässt sich der constructor Create nicht als private durch Zugriffe von aussen schützen. Denn der Konstruktur ist eine statische Methode und kann nicht direkt überschrieben werden. Auch ein reintroduce oder ein ableiten mit virtual hilft nicht. Der Konstruktor ist immer nach aussen sichtbar. Vielen Dank im Vorraus! Franz PS: Kennt jemand ein Buch, dass solche Designpatterns in Object Pascal behandelt? |
Re: Singelton mit Delphi
Hmm, ich hab zwar keine Ahnung, was ein "Singelton" ist, aber den Konstruktor als private-Element? Der Konstruktor wird benutzt, um Instanzen einer Klasse anzulegen. Wäre er privat, könnte man keine Instanzen der Klasse anlegen, folglich die Klasse nicht benutzen.
OK, man hätte weiterhin Zugriff auf Klassenmethoden, aber das wars dann auch schon. |
Re: Singelton mit Delphi
Falls Du eine Delphi3000.com Mitgliedschaft hast, dann sollte folgender Link weiterhelfen.
![]() Ansonsten wäre eine andere Lösung möglich. Lass den Create-Constructor Public, aber löse eine Exception darin aus. Nicht perfekt, aber gangbar ;-) ...:cat:... |
Re: Singelton mit Delphi
Hallo franz77,
herzlich willkommen im Forum, was ein Singleton ist wußte ich bis jetzt noch nicht, allerdings habe ich einen Link für Dich: ![]() p.s. Ist auf community.borland.com, da mußt Du dich (kostenlos) anmelden, denke ich. |
Re: Singelton mit Delphi
Wow!
Ihr seid ja fix! Und das um die Uhrzeit! :-) Vielen Dank! Das mit der Exception hab ich auch schon gemacht, aber das gelbe vom Ei ist das auch nicht. Die Links werde ich mir jetzt anschauen. Das Singelton möchte ich für ein Datenbankmodul einsetzte, so dass ich an einzelne Queries mit TDMMain.getInstance.Database die Datenbank zuweisen kann. Nochmal Vielen Dank! Franz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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 by Thomas Breitkreuz