단일 모델 의 네 가지 실현 과 그 장단 점

3331 단어 디자인 모드
/ / 단일 모드 의 네 가지 실현 방식
/ / 1. 비 스 레 드 보안
public class Test {
    public static Test obj;

    private Test(){};

    public static Test getInstance() {
        obj = new Test();
        return obj;
    }
 }

/ / 2. 비 스 레 드 보안, 이 대상 이 영원히 필요 하지만, 클래스 를 불 러 올 때 이 대상 을 초기 화하 고 메모 리 를 사용 합 니 다.
class Test2{
    public static Test2 obj=new Test2();

    private Test2(){};

    public static Test2 getInstance(){
        return obj;
    }
}

/ / 3. 스 레 드 안전, 느 림
class Test3{
    public static Test3 obj;

    private Test3(){};

    //            “    ”   ,     ,    
    public static synchronized Test3 getInstance(){
        if(obj==null){
            obj=new Test3();
            return obj;
        }
        return obj;
    }
}

/ 4. 스 레 드 안전, 빠 름
class Test4{
    public static volatile Test4 obj; //  obj            

    private Test4(){};

    public static Test4 getInstance(){//             
        if(obj==null){      //       ,     
            synchronized (Test4.class){
                if(obj==null){
                    obj=new Test4();
                    return obj;
                }
            }
        }
        return obj;
    }
}

주: 두 번 째 는 '굶 주 린 사람 식' 실현 방법 입 니 다. 즉, 이 대상 을 사용 하지 않 고 클래스 로 딩 할 때 만 듭 니 다.
1. 장점, 장면 을 자주 사용 할 때 이런 방식 을 사용한다.2. 사용 여 부 를 확인 하지 않 으 면 굶 주 린 사람 이 메모 리 를 차지 합 니 다.배 고 프 든 안 고 프 든 간 에 사람 을 아귀 로 삼 아 만 두 를 한 솥 만 들 었 다 고 생각 하 세 요. 남 들 이 많이 먹 지 않 으 면 낭비 하 겠 어 요! ~

좋은 웹페이지 즐겨찾기