싱글톤패턴
하나의 클래스에서 하나의 객체(인스턴스)만 생성해서 이용하는 방법
- 만드는 방법
(1) : private 기본생성자 -> 외부에서 new연산자로 생성자를 호출하지 못하도록 하기 위해서 만듬
(2) : private static 클래스이름 인스턴스 변수 -> 외부에서 접근하지 못하도록하기 위해 private임
(3) : public static getInstace() 메소드 구현 -> 외부에서 함수를 호출함으로 써 동일한 객체를 사용
// 시작과 동시에 객체를 생성하는 방법
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;
}
}