싱글톤패턴이란?

먼저 Singleton 패턴의 용도는 하나의 프로그램 내에서 하나의 인스턴스만을 생성해야만 하는 상황에서 쓰인다. 예를 들어 환경설정을 관리하는 클래스나 Connection Pool, Thread Pool과 같이 풀(Pool) 형태로 관리되는 클래스의 경우 프로그램 내에서 단 하나의 인스턴스로 관리되는 것이 일반적이며, 이 때 Singleton 패턴을 적용하는 것이 일반적인 경우라고 볼 수 있다. 

public class Singleton
{
     private static Singleton singleton = new Singleton();
     protected Singleton()
     {
          System.out.println("Maked Singleton");
     }
     public static Singleton getInstance()
     {
          return singleton;
     }
}

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

Singleton의 인스턴스를 생성하기 위해 getInstance() 메소드를 이용한다. 맨 처음 getInstance() 을 호출하면 singleton 변수를 리턴하기 위해 전역변수로 선언되어 있는 singleton의 인스턴스를 static하게 생성한다. 그 후 getInstance()를 호출하면 static으로 생성되어 있는 singleton의 값을 받아와 리턴한다.

만약 getInstance()가 static이 아닐경우 해당 함수를 호출할때마다 가변적인 메모리 위치에 생성이 되므로 static으로 선언한다.

'공부' 카테고리의 다른 글

JIT(Just-In-Time)  (0) 2016.07.06
MVC패턴  (0) 2016.06.26
싱글톤패턴(singleton pattern)  (0) 2016.06.26
공인 IP, 사설 IP, 고정 IP, 유동 IP  (0) 2016.06.23
쓰레드(thread)와 프로세스(process)  (0) 2016.06.23
비동기(Async)통신과 동기(Sync)통신  (0) 2016.06.23

+ Random Posts