Próbuję utworzyć klasę singleton w Javie. Najlepsze dostępne rozwiązanie z wersją Java5 i nowszymi wydaje się używać enum
. Ale nie jestem pewien, jak przekonwertować moją klasę do klasy singleton przy użyciu enum
. Oto moja uproszczona klasa:Tworzenie pojedynczej klasy przy użyciu enum
public class Employee {
private int id;
private String name;
public Employee() {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Kiedy Szukałem odpowiedzi w internecie znalazłem następujący kod:
public enum EasySingleton{
INSTANCE;
}
Ale gdzie są moje zmienne i metody klasy? Nie jestem pewien, jak to wdrożyć. Wiem, że możemy dostarczyć metody do enum
, ale gdzie będą moje zmienne? Każda pomoc w tym zakresie byłaby naprawdę doceniana.
P.S .: Proszę nie debatować, jeśli singleton są złe lub anty-wzór. Jestem tylko ciekawy, jak utworzyć singleton przy użyciu enum
.
Wstawisz je do enum. Ale posiadanie * wymienialnej * enum byłoby bardzo dziwne - a posiadanie zmiennego singletonu byłoby również dziwne. "Pracownik" po prostu nie ma ochoty na naturalny singleton. –
Zobacz [tutaj] (https://bitbucket.org/vadimvera/java-design-patterns/) i [tutaj] (https://bitbucket.org/vadimvera/java-standard-edition/src/d0ae9863354c48291cc4ff0e91e9f80fd96fdce2/ src/main/java/io/shido/patterns/Singleton.java? at = master) ... chociaż twoja klasa wygląda jak normalna klasa –
Proszę odnieść się do tego: [post] (http://stackoverflow.com/a/2912312/2928710) –