Singleton mit Attributen

Status
Nicht offen für weitere Antworten.

hugo

Bekanntes Mitglied
Hi...

Ich benötige ein einziges Objekt, um so etwas wie eine ini-Datei einlesen zu können. Dazu bietet sich ja das Singleton-Pattern an. Ich habe aber das Problem, dass ich dem Konstruktor ein Parameter zu dieser ini-Datei (Dateiname) mit übergeben muss. Gibt es dafür auch eine Lösungsmöglichkeit? Habe im Forum bisher immer nur Konstrukte ohne Parameter gesehen.
 
R

Roar

Gast
meinst du sowas?

Code:
public class INIDumDiDum {

private static INIDumDiDum dumdum = null;

public static INIDumDiDum getDumDiDum(String filename) {
if(dumdum == null && filename != null) {
dumdum = new INIDumDiDum(filename);
}
return dumdum;
}

}
:?
 
B

bygones

Gast
klar geht das....
eine möglichkeit:

Code:
private class Sing {
  private static Sing s = null;

  private int attribute;

  private Sing(int a) {
     attribute = a;
 }

  // ....


  public static synchronized  Sing getInstance(int i) {
      if(s == null) {
         s = new Sing(i);
     }

   return s;
 }

  public static synchronized Sing getInstance() throws IllegalAccessException {
   if(s == null) {
       throw new IllegalAccessException("noch nicht initialisiert);
  }
 return s;
}
[/code]
 

Bleiglanz

Gesperrter Benutzer
Dazu bietet sich ja das Singleton-Pattern an.
Warum sollte es, was ist denn das für eine hanebüchene Idee??

WOZU ein Singleton? Braucht man doch hier nie und nimmer, und wenn ja, warum soll der Dateiname dann als member rein - und nicht als Argument?



Code:
public IrgendeinRückgabeTyp liesIniDatei(String filename)
// oder und?
public IrgendeinRückgabeTyp liesIniDatei(File file)
 

hugo

Bekanntes Mitglied
@Bleiglanz Gebe zu, dass mit dem Dateinamen war vielleicht ein schlechtes Beispiel. Ich wollte hier nur mal das Beispiel aus dem Forum aufgreifen.

Es sieht so aus, dass ich Ausgänge schalten und überwachen will. Damit keine andere Klasse mir dort die Ausgänge umschaltet, soll nur diese eine das erledigen. Die Parameter zum Schalten hole ich mir aber schon vorher aus anderen Klassen zusammen und will sie deshalb übergeben.

Ich werd' dann mal auf die Idee von "deathbyaclown" zurückgreifen, sie sehr logisch aus, hätte man eigentlich auch von selbst drauf kommen können :oops:

Thx

Hugo
 

Karl

Aktives Mitglied
Hallo,

eine factory-Methode (getInstance(...)), die einen Parameter hat, sollte dem Aufrufer
immer ein Objekt liefern, das etwas mit dem Parameter zu tun hat :wink: .

Problem bei der Lösung von deathByAClown ist, dass diese Regel verletzt wird,
wenn der Singleton bereits existiert und ein weiteres mal die parametrisierte
factory-Methode verwendet wird. In einem solchen Fall wird ein falsches
Ergebnis zurückgeliefert :shock: .

Es gibt nun drei Möglichkeiten:
(1) schmutzig, aber pragmatisch: wirf in der parametrisierten factory-Methode eine IllegalState-Exception, falls
mal versehentlich ein zweites Mal diese Methode aufgerufen wird, gibt's was auf die Löffel.

(2) Vermeide die parametrisierte factory-Methode und sorge dafür, dass sich der Singleton selbst
initialisiert (Dateinamen Konstante deklarieren).
Tipp: Die ini-Datei sollte im classpath oder im working- oder home-directorectory liegen, dann musst
Du Dir über absolute Pfade keine Gedanken machen.

(3) Möglicherweise ist das Singleton-Pattern hier gar nicht angebracht, wenn es mehrere ini-Dateien gibt :bahnhof:

Gruß,

Karl
 
G

Guest

Gast
Hallo,

@Roar: :autsch: Da habe ich total übersehen, dass sich mal eben die Aufgabenstellung geändert hatte, sicherheitshalber habe ich mir für Februar einen Augenarzttermin geben lassen :D

Wenn ich das richtig sehe, sollte er die parametrisierte factory-Methode lieber in initialize(...) ändern, die einmalig
aufgerufen wird, wenn er die Parameter zusammen hat. Um das ganze etwas robuster zu machen kann die initialize-Methode (bei Doppelaufruf) und auch die verbleibende unparametrisierte factory-Methode (wie von deathByAClown vorgeschlagen, falls zu früh aufgerufen) eine Exception werfen.

Gruß,

Karl
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
O Singleton Java Basics - Anfänger-Themen 5
R Methode in Singleton Klasse Java Basics - Anfänger-Themen 1
O Singleton Verständnis Java Basics - Anfänger-Themen 4
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Singleton (Design Patterns) Java Basics - Anfänger-Themen 16
R OOP Singleton Java Basics - Anfänger-Themen 10
U Vererben von Singleton Java Basics - Anfänger-Themen 17
S Singleton - Daten einspielen Java Basics - Anfänger-Themen 5
K Warum ist ein Singleton kein Best Practise? Java Basics - Anfänger-Themen 3
M Singleton mit Parametern im Konstruktor Java Basics - Anfänger-Themen 18
D Singleton beim JFrame zerstören Java Basics - Anfänger-Themen 4
L Java Serialisierung Singleton Java Basics - Anfänger-Themen 6
A JBoss-Anwendung soll im Singleton-Mode laufen Java Basics - Anfänger-Themen 6
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
S Instanz(en) einer Singleton-Klasse Java Basics - Anfänger-Themen 11
S Statische Klassen/ Singleton Java Basics - Anfänger-Themen 13
J Warum verwendet man Singleton? Java Basics - Anfänger-Themen 7
B Was ist der unterschied zwischen Singleton und Strategy? Java Basics - Anfänger-Themen 6
S Singleton lazy Java Basics - Anfänger-Themen 8
A ist das ein Singleton-Pattern? Java Basics - Anfänger-Themen 6
P Singleton-Implementation Java Basics - Anfänger-Themen 8
F singleton Java Basics - Anfänger-Themen 4
T Singleton Java Basics - Anfänger-Themen 13
Antoras Singleton oder Controller / Datenverwaltungsklasse? Java Basics - Anfänger-Themen 10
D Objekte anlegen und Singleton Pattern Java Basics - Anfänger-Themen 21
D Denkfehler Singleton Java Basics - Anfänger-Themen 53
X Singleton - In diesem Fall sinnvoll? Java Basics - Anfänger-Themen 22
S Fragen zu synchronized + Singleton! Java Basics - Anfänger-Themen 10
M Singleton Pattern Java Basics - Anfänger-Themen 35
J Singleton Pattern Java Basics - Anfänger-Themen 5
S Singleton Pattern passend hierfür? Java Basics - Anfänger-Themen 60
M Mp3 Player mit Singleton Java Basics - Anfänger-Themen 8
M GUI als SingleTon Java Basics - Anfänger-Themen 6
B Singleton und Resourcebundle Java Basics - Anfänger-Themen 7
G Singleton Pattern Java Basics - Anfänger-Themen 7
D Singleton in Java implementieren Java Basics - Anfänger-Themen 6
H singleton Synchronisations Problem? Java Basics - Anfänger-Themen 2
M Singleton verwenden, aber wie? Java Basics - Anfänger-Themen 3
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
D Objekterzeugungen mit zur Laufzeit variierenden Attributen Java Basics - Anfänger-Themen 7
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
D Objekte mit verschiedenen Attributen erstellen Java Basics - Anfänger-Themen 3
D Variablen Verwaltung von Attributen Java Basics - Anfänger-Themen 3
C Kunden mit Attributen hinterlegen Java Basics - Anfänger-Themen 6
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
O Objekte nach Attributen durchsuchen Java Basics - Anfänger-Themen 10
S Kopierkonstrukter eines Objekts mit final Attributen Java Basics - Anfänger-Themen 6
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
H Datentypen Objekt mit wenig-bittigen Attributen Java Basics - Anfänger-Themen 8
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
D Attributen und Methoden, etwas vergessen? Java Basics - Anfänger-Themen 6
D Klasse erstellen mit vorgebenen Attributen udn methoden Java Basics - Anfänger-Themen 3
D GUI abhängig von den Attributen füllen! Java Basics - Anfänger-Themen 12
C Überdecken von Attributen und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 8
P Instanz mit allen Attributen ausgeben Java Basics - Anfänger-Themen 3
G Problem bei der Angabe von Attributen in einer Objekt-Klasse Java Basics - Anfänger-Themen 3
T Vererbung von Attributen und Methoden, Verständnisproblem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben