자바프로그래밍 싱글톤패턴

최주영·2023년 3월 18일
0

자바

목록 보기
9/30

싱글톤패턴

하나의 클래스에서 하나의 객체(인스턴스)만 생성해서 이용하는 방법

  • 만드는 방법
    (1) : private 기본생성자 -> 외부에서 new연산자로 생성자를 호출하지 못하도록 하기 위해서 만듬
    (2) : private static 클래스이름 인스턴스 변수 -> 외부에서 접근하지 못하도록하기 위해 private임
    (3) : public static getInstace() 메소드 구현 -> 외부에서 함수를 호출함으로 써 동일한 객체를 사용
  • 방법 2가지
    - 시작과 동시에 객체를 생성
    - 프로그램 러닝중에 객체를 생성
// 시작과 동시에 객체를 생성하는 방법
package com.bs.dd;

public class SingleTone {
  
	private int num;
	
    //시작과 동시에 객체를 생성하는 방법
	private static SingleTone sgt = new SingleTone(); //(2)
	
	private SingleTone() {} // (1)
	
	public int getNum() {
		return num;
	}

	public void setNum(int num) {
		this.num = num;
	}

	public static SingleTone getInstance() { // (3)
		return sgt;
	}
}	


package com.bs.run;
import com.bs.dd.SingleTone;

public class Main {

	public static void main(String[] args) {
		
		SingleTone s1 = SingleTone.getInstance();
		SingleTone s2 = SingleTone.getInstance();
		
		s1.setNum(50);
		s2.setNum(60);
		
		System.out.println(s1.getNum()); // 60
		System.out.println(s2.getNum()); // 60
	}
}



//  프로그램 러닝중에 객체를 생성

package com.bs.dd;

public class SingleTone {
  
	private int num;

	private static SingleTone sgt;
	
	private SingleTone() {}
	
	public int getNum() {
		return num;
	}

	public void setNum(int num) {
		this.num = num;
	}

	public static SingleTone getInstance() { //  프로그램 러닝중에 객체를 생성
		if(sgt == null) {
			sgt = new SingleTone();
		}
		return sgt;
	}

}	
















  
profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글