[Hackerrank] Advanced - Singleton Pattern 풀이
예문
https://www.hackerrank.com/challenges/java-singleton/problem
Sample Input
hello world
Sample Ouput
Hello I am a singleton! Let me say hello world to you
해석
- Singleton Pattern 구현
풀이
- LazyHolder 방식
- Assert 에러가 남;;
- DCL(Double Checked Locking) 방식으로 제출함.
제약사항
코드
//LazyHolder 방식
public class Singleton {
private Singleton() {}
public String str;
public static Singleton getSingleInstance() { return LazyHolder.INSTANCE; }
private static class LazyHolder {
private static final Singleton INSTANCE = new Singleton();
}
}
//DCL 방식
class Singleton {
private volatile static Singleton instance;
public static String str;
private Singleton() {}
static Singleton getSingleInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}