Singleton의 정의 및 생성 방법
프로그램 실행시 단 하나의 객체만 만들도록 보장해야하는 경우가 존재한다. 이렇게 단 하나만 생성되는 객체를 Singleton이라고 부른다. 일반적으로 객체는 new 연산자를 통해 생성자가 호출되며 생성된다. 따라서 우리는 생성자가 호출되지 않도록 외부에서 new 생성자로 객체를 생성하지 못하도록 해야한다. 이 때문에 Singleton의 생성자는 외부에서 호출할 수 없도록 private 접근 제한자를 붙여줘야 한다. 그리고 어찌되었든 하나의 객체는 생성되어야 하므로 우리는 해당 객체를 해당 클래스 안에 private 접근 제한자로 정적(static)으로 선언한다. 이후 getInstance()라는 메서드를 선언하여 해당 객체를 외부 클래스에서 받을 수 있도록 해주면 Singleton 객체의 생성이 완료된다. 다음은 Singleton 생성의 예시 코드다.
public class SingletonExam {
// static 필드
private static SingletonExam se = new SingletonExam();
private SingletonExam() {}
public static SingletonExam getInstance() {
return se;
}
public void printHello() {
System.out.println("Hello!");
}
}
아래는 위에 생성한 Singleton 객체를 활용하는 main문 예시 코드다.
public static void main(String[] args) {
SingletonExam se = SingletonExam.getInstance();
se.printHello();
}
'Java' 카테고리의 다른 글
[Java] Getter/Setter의 사용 이유 (0) | 2023.01.30 |
---|---|
[Java] Final, Static final (0) | 2023.01.30 |
[Java] Static (0) | 2023.01.30 |
[Java] Array (0) | 2023.01.30 |
[Java] Date to String & String to Date [SimpleDateFormat] (0) | 2023.01.18 |