싱글톤 클래스(Singleton Class)
- 프로그램에 객체를 하나만 제공하기 위한 목적으로 클래스를 작성하기 위한 디자인 패턴
- 프로그램에 불필요한 객체가 여러개 생성되는 것을 방지하기 위한 디자인 패턴
- 데이터 처리 기능의 메소드만 작성된 클래스를 선언할 때 싱글톤 디자인 패턴 적용
- 클래스로 생성된 객체를 저장하기 위한 필드 작성
- static 제한자를 사용하여 정적 필드로 작성
- 시스템 필드: 클래스에서만 사용할 목적으로 작성된 필드
- Getter 메소드와 Setter 메소드를 작성하지 않는 필드
- 일반적인 필드와 구분하기 위해 필드명을 [ _ ]로 시작되도록 작성하는 것을 권장_
Singleton 클래스
package oop;
public class Singleton {
private static Singleton _instance;
private Singleton() {
}
static {
_instance=new Singleton();
}
public static Singleton getInstance() {
return _instance;
}
public void display() {
System.out.println("Singleton 클래스의 display() 메소드 호출");
}
}
SingletonApp 클래스
package oop;
public class SingletonApp {
public static void main(String[] args) {
Singleton singleton1=Singleton.getInstance();
Singleton singleton2=Singleton.getInstance();
System.out.println("singleton1 = "+singleton1);
System.out.println("singleton2 = "+singleton2);
singleton1.display();
singleton2.display();
System.out.println("==============================================================");
Singleton.getInstance().display();
Singleton.getInstance().display();
System.out.println("==============================================================");
}
}