1. 싱글톤(Singleton)
단 하나의 객체만 만들도록 보장해야 하는 경우에 활용
1. 생성자 앞에 private 접근 제한자 선언 (외부에서 new 연산자로 생성자 호출 불가능)
public class Singleton {
// 1. 생성자 앞에 private 접근 제한자 선언
private Singleton() {
}
}
2. 자신의 타입인 정적 필드를 선언하고 자식의 객체를 생성 (초기화, 필드도 접근 불가능하도록 private 선언)
public class Singleton {
// 2. 자신의 타입인 정적 필드를 선언하고 자식의 객체를 생성
private static Singleton singleton = new Singleton();
// 1. 생성자 앞에 private 접근 제한자 선언
private Singleton() {
}
}
3. 정적 메소드를 선언하여 정적 필드에서 참조하고 있는 자신의 객체를 반환 (getInstance 메소드)
public class Singleton {
// 2. 자신의 타입인 정적 필드를 선언하고 자식의 객체를 생성
private static Singleton singleton = new Singleton();
// 1. 생성자 앞에 private 접근 제한자 선언
private Singleton() {
}
// 3. 정적 메소드를 선언하여 정적 필드에서 참조하고 있는 자신의 객체를 반환
public static Singleton getInstance() {
return singleton;
}
}
4. 확인
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
if(singleton1 == singleton2) {
System.out.println("같은 객체 입니다.");
}
'Backend > 객체 지향 프로그래밍' 카테고리의 다른 글
[Java] 패키지와 import문 (0) | 2022.04.13 |
---|---|
[Java] 상수 (final 필드) (0) | 2022.04.12 |
[Java] 정적 멤버 (0) | 2022.04.09 |
[Java] 인스턴스 멤버 (0) | 2022.04.08 |
[Java] 클래스의 구성 멤버 (메소드) (0) | 2022.04.07 |