단일 모드 의 참조

7159 단어 디자인 모드
개술
단일 클래스 를 만 들 때 매개 변수의 전달 을 지원 해 야 합 니 다. 예 를 들 어 우리 가 연결 탱크 의 단일 대상 을 만 들 려 면 매개 변 수 를 통 해 연결 탱크 의 크기 를 지정 해 야 합 니 다. 어떻게 해 야 합 니까?
public class IdGeneratorLh {
     

    //    ,   
    private AtomicLong id = new AtomicLong();
    //        ,      
    private static IdGeneratorLh instance;
    private static int size;

    private IdGeneratorLh(){
     }

    public IdGeneratorLh(int size){
     

        this.size = size;

    }

    public synchronized IdGeneratorLh getInstance(int size) throws Exception {
     

        if (instance==null){
     
            instance = new IdGeneratorLh(size);
        }

        //           
        if (this.size!=0&&this.size!=size){
     
            throw new Exception("       ,       !");
        }

        return instance;

    }

    public long getId(){
     

        return id.incrementAndGet();

    }

    public int getSize() {
     
        return size;
    }

    public static void main(String[] args) throws Exception {
     

        IdGeneratorLh instance = new IdGeneratorLh().getInstance(10);
        System.out.println(instance.getSize());
        IdGeneratorLh instance2 = new IdGeneratorLh().getInstance(30);
        System.out.println(instance2.getSize());

    }

}

좋은 웹페이지 즐겨찾기