728x90

1. Singleton Pattern이란?

 

- 싱글톤 패턴은 하나의 프로그램 내에서 하나의 객체만을 사용해야하는 상황에 주로 사용된다.

  (즉, 어플리케이션 전체 영역에서 하나의 클래스의 단 하나의 인스턴스를 생성하는 것)

   환경설정 관리 클래스나 커넥션 풀과 같이 pool 형태로 관리되는 클래스로 주로 공통클래스에 사용되는 것이 일반적이다.

 

 ex. 로그인 시 로그인한 사용자 정보를 처음에만 셋팅하는 UserData가 있다고 가정하자. 로그인 후, 로그아웃될 때까지 단 1번만 셋팅하면 되는 데이터인데, 이를 매번 사용할 때마다 새로운 UserData 객체로 생성하게 된다면, 자원 낭비 또는 참조하는 객체의 위치가 꼬이는 일이 발생할 수 있다.

 

2. Singleton 구현에서 주의 할 점

- 생성자를 private로 생성하여, 다른 외부 클래스에서 싱글톤 클래스를 new로 구성하지 못하게 하는 부분이다.

  싱글톤 클래스의 인스턴스를 타 클래스에서 사용하기 위해서는 getInstance()를 호출해야만 한다. 

 

- Java에서 singleton 멤버변수는 static 이어야한다는 것과 Singleton 클래스의 생성자는 private / protected 이어야한다는 것을 꼭 유념해야한다. private 일 경우는 결코 new 를 이용하여 인스턴스의 중복 생성을 방지하는 셈이기도 하나 상속이 되지 않는다는 단점이 있어 protected로 대게 선언한다.

 

 

 

Reference

http://mkil.tistory.com/199

http://tokisum.tistory.com/8

http://jeong-pro.tistory.com/86

728x90

'Dev > Java' 카테고리의 다른 글

RxJava 이해  (0) 2020.02.03
[Java] Java SE, EE, ME, FX의 차이  (0) 2019.10.16
[Java] Calendar 객체 사용시 'set' not working  (0) 2019.09.19

+ Recent posts