singleton_pattern

싱글턴 패턴은 안티패턴?

싱글톤 패턴의 나쁜점은 단일 책임원칙을 위반한다.

그리고 코드의 결합도를 높힌다.

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

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

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

해결 해야될것 같다…..

scouter로는 정상처리 되는것 처럼 보이는데 딜레이가 걸리고 있다. 좀 더 봐야 될것 같다.


  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);
    }

참조