싱글턴 패턴은 안티패턴?

singleton_pattern

싱글턴 패턴은 안티패턴?

코드의 결합도를 높힌다.

테스트시에 다른 시스템에 영향을 줄수 있다.(공유되고 있는 객체이기 때문에)

하지만 싱글톤을 사용해야 되는경우에는 꼭 사용해야 된다고 생각이 된다.

싱글톤으로 했을때 멀티쓰레드에서 아래 처럼 슬립을 걸면 병목현상이 일어나는것을 확인했다.

해결 해야될것 같다…..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

private static AtomicInteger ai = new AtomicInteger();

public List<String> selADEXSortList(String key) {
if (ai.intValue() == 3) {
System.out.println("1################################# "+ai.getAndIncrement());
try {
Thread.sleep(90000000);
} catch (Exception e) {
// TODO: handle exception
}
}else {
System.out.println("2################################# "+ai.getAndIncrement());

}

return adexSortPattern.retrieveData(key, null);
}

참조