Hi, zuerst mal der Code:
Singleton ohne Instanz zu anderer Klasse:
Singleton mit Instanz zu anderer Klasse:
Dazu ein paar Fragen:
- Wäre der Code so gut?
- Braucht man zwingend das "static"?
- Entspricht Zweites noch dem Prinzip der losen Kopplung?
- Gibt es bei Zweites auch die Möglichkeit, die Klassenvariable "final" zu machen? Wenn ja, wie?
Vielen Dank für eure Geduld
Singleton ohne Instanz zu anderer Klasse:
Java:
public class TheClazz1 {
public static final ASingleton singleton = new ASingleton();
public void testMethod() {
new AnotherClazz().testMethod();
}
public static void main(String[] args) {
TheClazz1 clazz1 = new TheClazz1();
clazz1.testMethod();
}
}
class ASingleton {
public void importantMethod(double importantParameter) {
System.out.println("importantParameter = " + importantParameter);
// to do: implementation
}
}
class AnotherClazz {
public void testMethod() {
TheClazz1.singleton.importantMethod(42);
}
}
Singleton mit Instanz zu anderer Klasse:
Java:
public class TheClazz2 {
public static ASingleton2 singleton;
public TheClazz2() {
// other things in constructor here...
singleton = new ASingleton2(this);
}
public void testMethod() {
new AnotherClazz2().testMethod();
}
public void testMethod2(double importantParameter) {
System.out.println("importantParameter = " + importantParameter);
}
public static void main(String[] args) {
TheClazz2 clazz2 = new TheClazz2();
clazz2.testMethod();
}
}
class ASingleton2 {
private final TheClazz2 clazz2;
public ASingleton2(TheClazz2 importantReference) {
this.clazz2 = importantReference;
}
public void importantMethod(double importantParameter) {
clazz2.testMethod2(importantParameter);
// to do: implementation
}
}
class AnotherClazz2 {
public void testMethod() {
TheClazz2.singleton.importantMethod(42);
}
}
Dazu ein paar Fragen:
- Wäre der Code so gut?
- Braucht man zwingend das "static"?
- Entspricht Zweites noch dem Prinzip der losen Kopplung?
- Gibt es bei Zweites auch die Möglichkeit, die Klassenvariable "final" zu machen? Wenn ja, wie?
Vielen Dank für eure Geduld