2018-4-12 싱글턴패턴
Java Design Pattern - Singleton Pattern
싱글턴 패턴이란?
싱글턴 패턴이란 인스턴스를 하나만 만들어 사용하기 위한 패턴이다.
- 인스턴스를 여러개 만들 경우 불필요한 자원을 사용을 하게되므로 낭비를 하게된다. 싱글턴 패턴은 인스턴스를 한개만 생성을 하고, 그것을 계속 재사용을 한다.
싱글턴 패턴의 3가지 조건
- new를 실행할 수 없도록 생성자에 private 접근제어자를 지정
- 유일한 단일 객체를 반환할 수 있는 정적 메소드가 필요
- 유일한 단일 객체를 참조할 정적 참조변수 필요
public class Singleton {
static Singleton singletonObject; //정적 참조 변수
private Singleton() { }; // private생성자
// 객체 반환 정적 메소드
public static Singleton getInstance() {
if (singletonObject == null)
singletonObject = new Singleton();
return singletonObject;
}
}
class Client {
public static void main(String[] args) {
// private생성자라서 new를 통해 인스턴스를 생성할 수 없다.
// Singleton s = new Singleton();
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
Singleton s3 = Singleton.getInstance();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
s1 = null;
s2 = null;
s3 = null;
}
}
//result
Singleton@60e53b93
Singleton@60e53b93
Singleton@60e53b93
- 단일 객체인 경우 결국 공유 객체로 사용되기 때문에 속성을 갖지 않는다. 위 예제를 통해서 s1, s2, s3가 단일객체를 참조한다는 것을 알 수 있다.
싱글턴 패턴의 특징
- private생성자를 갖는다.
- 단일 객체 참조변수를 정적 속성으로 갖는다.
- 단일 객체 참조변수가 참조하는 단일 객체를 반환하는 getInstance()정적 메소드를 갖는다.
- 쓰기 속성을 갖지 않는다.
싱글턴 패턴은 클래스의 인스턴스, 즉 객체를 하나만 만들어서 사용하는 패턴이다.
Written on April 12, 2018