nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Singleton mit Parameter?

Von: tailorma de (tailormade@gmx.net) [Profil]
Datum: 12.03.2007 13:38
Message-ID: <1173703103.839635.212800@j27g2000cwj.googlegroups.com>
Newsgroup: de.comp.objekt
Hallo!

Wie löst man das eigentlich am besten: Eigentlich brauche ich ein
Singleton. Aber ich möchte auch einen Parameter übergeben, ohne den
die Instanz nicht arbeiten kann. Aber da der Konstruktor privat ist,
kann ich keinen Parameter von außen an den Konstruktor übergeben.
Mein Ziel ist, die Klasse unfehlbar zu machen, so dass es keine
versehentliche Fehlanwendung geben kann (jedenfalls was die Erzeugung
und Nutzung der Singleton-Instanz betrifft).

Mal in Java ausgedrückt (hoffentlich stimmt's syntaktisch):

public class MeineKlasse
{
public static MeineKlasse instance = new ???????

private EineAndereKlasse _irgendwas;

private void MeineKlasse(EineAndereKlasse irgendwas)
{
_irgendwas = irgendwas;
}
}

Klar, man kann den Konstruktor leer lassen und dann eine Init-Methode
aufrufen. Aber dann könnten Methoden aufgerufen werden, bevor die Init-
Methode aufgerufen wurde. Um das zu beheben könnte man noch eine
private bool'sche Member-Variable einführen (isInitialized) und diese
dann immer prüfen. Ist aber auch nicht schön.

Ist eine statische CreateInstance-Funktion die richtige Lösung? Hat
aber auch wieder den Nachteil, dass auf die Variable instance
zugegriffen werden kann, obwohl sie auf Null verweist.

Gibt es eine ultimative Lösung?

Gruß,
Robert


[ Auf dieses Posting antworten ]

Antworten