
특정 클래스의 인스턴스가 오직 하나만 생성되고, 이후에는 그 인스턴스를 공유하여 사용하는 패턴
객체 생성 및 리소스 소비를 최적화하고, 전역적으로 접근 가능한 단일 지점을 제공
- 단일 인스턴스
- 전역적 접근
- 지연 로딩
public class Singleton {
// 정적 변수로 인스턴스를 저장
private static Singleton instance;
// 생성자를 private으로 선언하여 외부에서 인스턴스 생성 불가능하게 함
private Singleton() {
}
// 인스턴스 반환 메서드
public static Singleton getInstance() {
// 인스턴스가 없을 경우에만 생성
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// 다른 유용한 메서드 및 속성들
}
public class Main {
public static void main(String[] args) {
// Singleton 인스턴스 얻기
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
// 두 인스턴스는 동일함
System.out.println(singleton1 == singleton2); // true
}
}
'learn > design pattern' 카테고리의 다른 글
빌더 (Builder) (0) | 2023.09.22 |
---|---|
팩토리 (Factory) (0) | 2023.09.22 |