java 단일 모드 사용 및 주의사항

1931 단어 java모드
1. 설명
1) 단일 모드: 하나의 클래스가 하나의 실례만 있는지 확인하고 자체적으로 실례화하여 시스템에 이 실례를 제공한다
2) 단례 모드 분류: 굶주림 단례 모드(클래스가 불러올 때 하나의 대상을 실례화하여 자신의 인용에 사용), 게으름 단례 모드(getInstance와 같은 실례를 호출할 때 실례화 대상)(java에서 굶주림 단례 모드의 성능이 게으름 단례 모드보다 우수하고 c++에서 일반적으로 게으름 단례 모드를 사용)
3) 단일 모드 요소:
a) 사유 구조 방법 b) 사유 정적 인용은 자신의 실례 c를 가리킨다) 자신의 실례를 반환값으로 하는 공유 정적 방법
 2.인스턴스
배고프다

package com.wish.modedesign;

public class HungrySingleton {
    private static HungrySingleton instance  = new HungrySingleton();
    private HungrySingleton(){
    }
    public static HungrySingleton getInstance(){
        return instance;
    }
}

게으름 모드:

package com.wish.modedesign;

public class Singleton {
    private Singleton(){

    }
    private static Singleton instance;
    public static synchronized Singleton getInstance(){   //
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }
}

테스트 클래스 드라이버.java

package com.wish.modedesign;

public class Driver {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1==s2);   //true
    }

}

3. 장점과 적용 장면
1) 단일 모드의 이점:
메모리에 대상이 하나밖에 없어서 메모리 공간을 절약할 수 있다.제거 객체를 자주 생성하지 않도록 하여 성능을 향상시킬 수 있습니다.공유 자원에 대한 다중 점용을 피하다.글로벌 액세스가 가능합니다.2) 적용 장면:
빈번하게 실례화되어 삭제해야 하는 대상.대상을 만드는 데 시간이 너무 많이 걸리거나 자원이 너무 많이 소모되지만 자주 사용하는 대상입니다.상태가 있는 도구 클래스 객체입니다.데이터베이스나 파일에 빈번하게 접근하는 대상.4. 사용 시 주의사항
1) 사용 시 반사 모드로 단례를 만들 수 없습니다. 그렇지 않으면 새 대상이 실례화됩니다.
2) 게으름 단일 모드 사용 시 스레드 안전 문제 주의
3) 굶주림 사례 모델과 게으름 사례 모델의 구조 방법은 모두 개인적인 것이기 때문에 계승될 수 없고 일부 사례 모델은 계승될 수 있다(예를 들어 등록식 모델)

좋은 웹페이지 즐겨찾기