독서 노트 3 - 단 례 모드

단일 모드
굶 주 린 남자 모델
클래스 를 불 러 올 때 직접 불 러 옵 니 다. 불 러 오 는 속도 가 빠 릅 니 다.하지만 쓸모 가 없 을 때 는 자원 을 낭비 합 니 다.
public class SingletonDemo1 {
    private static SingletonDemo1 singletonDemo1=new SingletonDemo1();

    /*
    *      ,      
     */
    private SingletonDemo1(){

    }

    //          
    public static SingletonDemo1 getInstance(){
        return singletonDemo1;
    }
}

사용 방법: SingletonDemo.getInstance()게으름뱅이 모드
사용 은 로드 입 니 다. 시스템 자원 은 낭 비 를 초래 하지 않 습 니 다.하지만 로 딩 시간 은 굶 주 린 사람 모드 보다 훨씬 느 립 니 다 (약 두 개 수량 급)
public class SingletonDemo2 {
    //        
    private static SingletonDemo2 singletonDemo2;

    private SingletonDemo2(){

    }

    //             
    public static SingletonDemo2 getInstance(){
        //    ,     
        if(singletonDemo2==null){
            singletonDemo2=new SingletonDemo2();
        }
        return singletonDemo2;
    }
}

정적 내부 클래스
더 적은 코드 를 사용 하여 게 으 른 로 딩 을 실현 하고 사용 할 때 만 대상 을 만 듭 니 다.
public class SingletonDemo3 {
    public static SingletonDemo3 getInstance(){
        return SingletomHolder.singletonDemo3;
    }
    //       
    private SingletonDemo3(){

    }
    public static class SingletomHolder{
        private static SingletonDemo3 singletonDemo3=new SingletonDemo3();
    }
}

매 거 류
매 거 류 는 원래 하나의 사례 모델 인 데 이것 은 JVM 바 텀 에서 이 루어 진 것 이다.그래서 많은 응원 이 필요 없어 요.
public enum SingletonDemo {
    Instance;
    public SingletonDemo getInstance(){
        return SingletonDemo.Instance;
    }
}

내부 에서 다른 방법 도 실현 할 수 있 으 니 상관없다.

좋은 웹페이지 즐겨찾기