SingletonMain(단일체): 한 클래스에 단 하나의 객체만 존재하도록 제안한다.
메모리를 절약, 데이터 공유 편리
테스트 불편, 유연성이 떨어짐
package pack2;
import java.lang.System;//생략가능하게 만들어졌다. 그 외 나머지 패키지는 import해야 한다.
public class SingletonMain {
public static void main(String[] args) {
//누가 시행착오를 겪어서 패턴을 만들어 놓음.
Singleton singleton1 = new Singleton();
Singleton singleton2 = new Singleton();
System.out.println(singleton1);//pack2.Singleton@2133c8f8
System.out.println(singleton2);//pack2.Singleton@43a25848
//인스턴스 2회 주소가 다름
System.out.println("------------");
Singleton single1=Singleton.getInstance(); //이미 만든 인스턴스를 가져다 씀
Singleton single2=Singleton.getInstance();
System.out.println(single1);//pack2.Singleton@3ac3fd8b
System.out.println(single2);//pack2.Singleton@3ac3fd8b
}
}
package pack2;
public class Singleton {//싱글톤 패턴 연습용 클래스
int kor =100;
//getter 메소드: 인스턴스 변수의 데이터를 조회할 목적으로 사용.
public int getKor() {
return kor;
}
//-----------------------------------------
//싱글톤 패턴
private static Singleton single = new Singleton();
//static을 이용해 프로그램이 시작할 때 단 한번만 생성
public static Singleton getInstance() { //main에서 인스턴스 하지 않고 이미 만들어진 클래스를 가져다가 쓸 수 있음
return single;
}
}