-
싱글톤(Singleton)공부/Java 2024. 1. 12. 20:52
싱글톤 (Singleton)
가끔 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다.
단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다.
싱글톤을 만들기 위해 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.
※ 생성자를 호출한 만큼 객체가 생성되기 때문
생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여주면 된다.
접근 제한자에 대해서는 나중에 더 자세하게 작성하겠다.
예시
public class ANewDream048 { private static ANewDream048 singleton = new ANewDream048(); private ANewDream048() {} static ANewDream048 getInstance() { return singleton; } }
public class ANewDream048Test { public static void main(String[] args) { ANewDream048 obj1 = ANewDream048.getInstance(); ANewDream048 obj2 = ANewDream048.getInstance(); if (obj1 == obj2) { System.out.println("같은 객체를 가르킨다."); } else { System.out.println("다른 객체를 다르킨다."); } } }
결과
같은 객체를 가르킨다.
ANewDream048Test 클래스 파일에서 new 연산자로 객체를 만들고자 하면 에러가 발생한다.
private 연산자를 사용했기 때문이다.
이런 경우 외부에서 객체를 얻는 유일한 방법은 getInstance() 메서드를 호출하는 방법이다.
getInstance() 메서드는 단 하나의 객체만 리턴하기 때문에, 동일한 객체를 참조하게 된다.
'공부 > Java' 카테고리의 다른 글
포함관계와 클래스 간의 관계 (0) 2024.02.01 상속 (0) 2024.01.31 각 타입의 기본값(default value) (0) 2024.01.08 변수의 초기화와 멤버변수의 초기화 (4) 2024.01.08 객체 자신을 가리키는 참조변수 this (4) 2024.01.04