[JAVA] 디자인패턴 - 싱글턴

🍀 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. 성능 최적화

- 자원을 안전하고 효율적으로 공유하도록 설계할 때 싱글턴이 적절하게 사용된다.

반응형

댓글

Designed by JB FACTORY