Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 납입
- 중도인출
- javascript
- 추가납입
- 코딩
- 수수료
- 자바스크립트
- 가입
- 프로그래밍
- 보험
- Java
- 급성심근경색증
- 웹개발
- 인출수수료
- python
- PythonProgramming
- 프론트엔드
- 문자열
- 변환
- 보험료
- 심장질환
- 파이썬
- 교보
- jQuery
- 사망
- 뇌출혈
- 특약
- 리스트
- 교보생명
- Vue.js
Archives
- Today
- Total
SeouliteLab
[Java/자바] 싱글톤(Singleton) 패턴 구현하기 본문
싱글톤 패턴은 애플리케이션 전역에서 단일 인스턴스를 유지하고 해당 인스턴스에 대한 전역 접근을 제공하는 디자인 패턴입니다. Java에서는 다양한 방법으로 싱글톤을 구현할 수 있습니다. 아래에서는 여러 가지 방법으로 싱글톤을 구현하는 예제를 살펴보겠습니다.
예제 1: Eager Initialization 방식의 싱글톤
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
위 예제는 Eager Initialization 방식으로 싱글톤을 구현한 것입니다. 정적 변수로 인스턴스를 미리 생성하여 getInstance() 메서드에서 반환합니다.
예제 2: Lazy Initialization 방식의 싱글톤
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
위 예제는 Lazy Initialization 방식으로 싱글톤을 구현한 것입니다. getInstance() 메서드에서 인스턴스를 처음 요청할 때 생성합니다.
예제 3: Double-Checked Locking 방식의 싱글톤
public class Singleton {
private static volatile Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
위 예제는 Double-Checked Locking 방식으로 싱글톤을 구현한 것입니다. getInstance() 메서드에서 인스턴스를 생성하기 전에 두 번의 null 체크를 수행합니다.
예제 4: Initialization on Demand Holder(IoDH) 방식의 싱글톤
public class Singleton {
private static class SingletonHolder {
private static final Singleton instance = new Singleton();
}
private Singleton() {}
public static Singleton getInstance() {
return SingletonHolder.instance;
}
}
위 예제는 Initialization on Demand Holder(IoDH) 방식으로 싱글톤을 구현한 것입니다. 내부 정적 클래스에 인스턴스를 미리 생성하고 getInstance() 메서드에서 반환합니다.
예제 5: Enum 방식의 싱글톤
public enum Singleton {
INSTANCE;
// 다른 멤버나 메서드를 추가할 수 있음
}
위 예제는 Enum 방식으로 싱글톤을 구현한 것입니다. Java에서는 Enum 타입이 적합한 싱글톤을 구현하는 데 사용될 수 있습니다.
'프로그래밍' 카테고리의 다른 글
[Java/자바] String 배열 초기화 방법 (0) | 2024.03.07 |
---|---|
[Java/자바] 숫자 왼쪽에 0으로 채우기 (0) | 2024.03.07 |
[Java/자바] 특정 조건으로 HashMap 필터링하기 (0) | 2024.03.07 |
[Java/자바] HashMap 모든 요소들의 합계와 평균 계산하기 (0) | 2024.03.07 |
[Java/자바] 특정 조건으로 리스트 필터링하는 3가지 방법 (0) | 2024.03.07 |