Singleton in Java implementieren

Status
Nicht offen für weitere Antworten.

Dutch_OnE

Mitglied
Hallo,

ich habe folgende Klasse und muss für den Datentyp Katalog und die Methode erzeugeKatalog() ein Singleton einrichten. Kann mir dabei jemand helfen ? Die Methode Katalog wird von externen Klassen aufgerufen und soll nur einmal instanziiert werden.

Gruß
Dutch

Code:
package Katalog03;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;


public class Katalog {

private Katalog katalog;
private ArrayList KatalogArrayList;
private HashMap KatalogHashMap;
private Buch buch;

public Katalog()
{

KatalogArrayList = new ArrayList();
KatalogHashMap = new HashMap();


buch = new Buch();
buch.setIsbn("3-89842-747-1");
buch.setAutor("Christian Ullenboom");
buch.setBuchTitel("Java ist auch eine Insel");
buch.setVerlag("Galileo Computing");
buch.setErscheinungsJahr(2005);
buch.setPreis((float) 49.99);
buch.setBeschreibung("Ein Buch zum Thema Java");
KatalogArrayList.add(buch);
KatalogHashMap.put(buch.getIsbn(),buch);

buch = new Buch();
buch.setIsbn("3-89842-747-2");
buch.setAutor("Test Autor 1");
buch.setBuchTitel("Test Buch 1");
buch.setVerlag("Test Verlag 1");
buch.setErscheinungsJahr(2005);
buch.setPreis((float) 19.99);
buch.setBeschreibung("Das erste Testbuch");
KatalogArrayList.add(buch);
KatalogHashMap.put(buch.getIsbn(),buch);

buch = new Buch();
buch.setIsbn("3-89842-747-3");
buch.setAutor("Test Autor 2");
buch.setBuchTitel("Test Buch 2");
buch.setVerlag("Test Verlag 2");
buch.setErscheinungsJahr(2002);
buch.setPreis((float) 15.29);
buch.setBeschreibung("Das zweite Testbuch");
KatalogArrayList.add(buch);
KatalogHashMap.put(buch.getIsbn(),buch);

buch = new Buch();
buch.setIsbn("3-89842-747-4");
buch.setAutor("Test Autor 3");
buch.setBuchTitel("Test Buch 3");
buch.setVerlag("Test Verlag 3");
buch.setErscheinungsJahr(1987);
buch.setPreis((float) 64.75);
buch.setBeschreibung("Das dritte Testbuch");
KatalogArrayList.add(buch);
KatalogHashMap.put(buch.getIsbn(),buch);

buch = new Buch();
buch.setIsbn("3-89842-747-5");
buch.setAutor("Test Autor 4");
buch.setBuchTitel("Test Buch 4");
buch.setVerlag("Test Verlag 4");
buch.setErscheinungsJahr(2000);
buch.setPreis((float) 8.99);
buch.setBeschreibung("Das vierte Testbuch");
KatalogArrayList.add(buch);
KatalogHashMap.put(buch.getIsbn(),buch);
 

Dutch_OnE

Mitglied
Ich habe mich mitlerweile nochmal "relativ" versucht schlau zu lesen.

Das Ziel ist es wohl einem öffentlichen Konstruktor mit dem ich das Objekt Katalog erzeuge, durch eine Singleton Anweisung dazu zu bringen, das er auch bei mehreren Aufrufen das Objekt nur einmal erzeugt.

Code:
package Katalog03;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public final class KatalogServlet extends HttpServlet {

	private PrintWriter out;

	private Katalog katalog;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, java.io.IOException {

		response.setContentType("text/html");

		out = response.getWriter();

		zeigeBuchKatalog();

	}

	public void init() {
		katalog = new Katalog();
	}

	public void destroy() {
		katalog = null;
	}

}


Dies ist ein Auszug der Klasse in der der Konstruktor steht.

Wie kann ich diesen nun modifizieren, so das nur ein Objekt instantiiert wird ?
 

SnooP

Top Contributor
Dutch_OnE hat gesagt.:
Das Ziel ist es wohl einem öffentlichen Konstruktor mit dem ich das Objekt Katalog erzeuge, durch eine Singleton Anweisung dazu zu bringen, das er auch bei mehreren Aufrufen das Objekt nur einmal erzeugt.

Nee - nicht ganz, das Ziel ist es eher keinen öffentlichen Konstruktor zu haben, sprich generell zu verbieten, dass man überhaupt mit new nen Objekt erstellen kann - also ist der einzige Konstruktor dieser Klasse private!

Eine andere statische Methode - zumeist getInstance oder createIrgendwas genannt - erstellt dann über diesen privaten genau dann ein Objekt der Klasse, wenn nicht bereits eines erstellt wurde und genau das kann darüber erreicht werden, dass man in einer Klassenvariablen: static MeineKlasse instance; diese Instanz speichert, wenn instance==null ist. Zurückgeben tut getInstance also immer dieses Objekt, solange es nicht null ist, wenn es null ist, dann wurde noch keine Instanz erzeugt und sie muss erstellt und in instance gespeichert werden...

aber dazu - siehe auch den entsprechenden FAQ-Beitrag dieses Forums.
 
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
L Java Serialisierung Singleton Java Basics - Anfänger-Themen 6
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
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
H singleton Synchronisations Problem? Java Basics - Anfänger-Themen 2
M Singleton verwenden, aber wie? Java Basics - Anfänger-Themen 3
H Singleton mit Attributen Java Basics - Anfänger-Themen 7
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben