Я пытаюсь узнать о шаблоне проектирования Singleton, и я нашел два разных способа создания только одного экземпляра.Два способа дизайна Singleton
public class Singleton {
private static Singleton instance; // attributes omitted
private Singleton() {
// omissions
}
public static Singleton instance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// other methods omitted
}
public class Singleton {
private static int bound = 1;
public Singleton() {
if (bound == 0) {
throw new RuntimeException(
"Singleton: No more objects must be created");
}
bound--;
}
}
который является предпочтительным использовать и почему? Они одинаково хороши?
Второй путь ужасен. Первый способ является достаточно плохим (например, он не является потокобезопасным). –