[JAVA] 디자인패턴 - 싱글턴
- Language/JAVA
- 2024. 9. 2.
🍀 SingleTon
객체 지향 프로그래밍에서 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴이다.
이 패턴을 사용할 시, 전역 변수를 사용하지 않고도 객체에 전역적으로 접근이 가능해진다.
시스템 전체에 걸쳐 특정 지원에 대한 일관된 접근을 제공 하는데 유용
🧑💻 코드보기
Singleton.class
public class Singleton {
//private 정적 인스턴스
private static Singleton instance;
// private 생성자
private Singleton() {};
//public method
public static Singleton getInstance() {
if(instance == null) instance = new Singleton();
return instance;
}
}
Main.class
class Main {
//main 함수 실행
public static void main(String[] args) {
//기존 객체 불러오기
Main main01 = new Main();
Main main02 = new Main();
System.out.println(main01);
System.out.println(main02);
System.out.println(main01 == main02); //false
//싱글턴 객체 불러오기
Singleton singleton01 = Singleton.getInstance();
Singleton singleton02 = Singleton.getInstance();
System.out.println(singleton01 == singleton02); //true
}
}
🍀사용하기 좋은 곳
1. 데이터 베이스 연결
- 데이터베이스 연결 인스턴스는 생각보다 많은 자원을 소모한다.
- 싱글턴을 이용하면, 데이터베이스 연결 객체를 관리함으로써 재사용하고 효율적으로 자원 관리가 가능하다.
2. 설정 파일 로더
- 애플리케이션 설정을 로드하는 클래스는 싱글턴으로 구현 ( Spring Frame Work의 Bean )
- 설정 데이터는 애플리케이션 전체에 공유되며, 한 번만 로드가 필요하기 때문
3. 로그 관리
- 로그를 기록하는 유틸리티는 애플리케이션 전체에서 접근이 가능해야 한다.
- 일관된 방식으로 로그처리가 가능
4. 성능 최적화
- 자원을 안전하고 효율적으로 공유하도록 설계할 때 싱글턴이 적절하게 사용된다.
반응형
'Language > JAVA' 카테고리의 다른 글
[Java] 디자인 패턴, Command 패턴 알아보자 (2) | 2024.09.10 |
---|---|
[Java] 디자인 패턴, Strategy에 대해서 알아보자 (1) | 2024.09.07 |
[Java] 중첩 클레스 알아보기 (1) | 2024.07.03 |
[Java] 상속 (0) | 2024.06.23 |
[Java] Java 설치하기 (0) | 2024.04.29 |