OOP Singleton

rarofu66

Neues Mitglied
Kann mir jemand erklären warum das ein Singleton ist?

Java:
abstract class Employee {
	abstract void youAreFired();

	static Employee create() {
		return new Employee() {
			public void youAreFired() { 
			}
		};
	}
}
 
Zuletzt bearbeitet von einem Moderator:

rarofu66

Neues Mitglied
So, hier ist die komplette SingletonFactory:

Java:
public abstract class Employee {
	abstract void youAreFired();

	private static Employee instance = null;

	public synchronized static Employee create() {
		if (instance == null) {
			instance = new Employee() {
				public void youAreFired() {
				}
			};
		}
		return instance;
	}
	
	public static void main(String[] argv) {
		
		Employee eins = Employee.create();
		Employee zwei = Employee.create();
		System.out.println("eins gleich zwei: " + eins.equals(zwei));
		System.out.println("Hashcode eins: " + eins.hashCode());
		System.out.println("Hashcode zwei: " + zwei.hashCode());
	}
	
}
 
T

TryToHelp

Gast
Ja jetzt ist es ein Singleton, aber dein ursprungspost hatte nix mit einem Singleton zu tun ;-)
 
B

bone2

Gast
Und jetzt ist es ein Singelton, weil nie mehr als eine Instanz existieren kann. Sobald die einmal konstruiert wurde, wird immer wieder die Selbe zurückgegeben.
 
S

SlaterB

Gast
> Und jetzt ist es ein Singelton, weil nie mehr als eine Instanz existieren kann.

genau diese annoyme Implentierung läßt sich nicht erneut erzeugen,
bei Kenntnis des Quellcodes vielleicht in Kopie gleich, aber nicht exakt dieselbe,

von der abstrakten Klasse Employee ist aber nicht die Verhinderung weiterer Instanzen festgeschrieben,
da kann bisher jeder neue Quellcode auch ein Employee-Objekt erzeugen,
da nur Employee als Typ verwendet werden kann, lassen sich andere erzeugte Objekte überall einschleusen wo Employee auftritt,
insofern streng genommen kein Singleton, Ausschluss weiterer Objekte, falls das wichtig ist

es gibt natürlich immer den Positivfall, einfach nur eine statische Variable belegen und verwenden,
kein eigenen Code arbeitet mutwillig dagegen,
hier mit Vorgabe der Implementierung wäre aus schon gegebenfalls große Arbeit, ein zweites Objekt zu erstellen,
schwerer als ein versehentliches [c]new Employee()[/c] irgendwo

----

edit:
@FArt
ich bin mir da nie ganz sicher, vergesse es sicher auch gleich wieder, tue mich schwer im Testen dazu, aber:
würden sich die zwei Instances zweier ClassLoader nacheinander in einer Variable, also in einem bestimmten Typ eines bestimmten ClassLoaders ablegen lassen, oder gibt es da Fehlermeldungen Richtung 'wrong class'?
 
Zuletzt bearbeitet von einem Moderator:

Volvagia

Top Contributor
Mir fällt gerade auf, du musst den Konstruktor privatisieren, sonst bringt es nichts. In diesen speziellen Beispiel macht es zwar keinen Unterschied, falls mehr als eine Klasse verwendet wird aber schon. Sonst ist eine neue Instanz einfach per new anzulegen. Außerdem ist abstract dabei schlecht, da jede Vererbung eine neue Instanz erzeugt würde.


[OT]Wha, das habe ich schon die ganze Zeit in nen FF Tab um es im richtigen Moment posten zu können. ;([/OT]
 
Ä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
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
H Singleton mit Attributen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben