-
생성패턴 : Singleton 패턴디자인패턴 2013. 1. 16. 10:00
분류 : 생성패턴(Creational Patterns)
정의 :
클래스의 인스턴스가 하나만 존재하도록 제한하는 패턴
용도 :
Abstract Factory, Builder, Prototype 패턴을 구현할때 Singleton을 사용할 수 있음.
상태를 나타내는 객체에서 사용됨.
불필요한 변수에의해 전체 네임스페이스가 오염되는 것을 방지.
코드 : Singleton 구현의 여러가지 방법들.
//Lazy initialization public class SingletonLazy { private static volatile SingletonLazy instance = null; private SingletonLazy() { } public static SingletonLazy getInstance() { if (instance == null) { synchronized (SingletonLazy .class){ if (instance == null) { instance = new SingletonLazy (); } } } return instance; } } // Eager initialization public class SingletonEager { private static final SingletonEager instance = new SingletonEager(); private SingletonEager() {} public static SingletonEager getInstance() { return instance; } } //Static Block initialization public class SingletonStaticBlock { private static final SingletonStaticBlock instance; static { instance = new SingletonStaticBlock(); } public static SingletonStaticBlock getInstance() { return instance; } private SingletonStaticBlock() { // ... } }
참고자료
'디자인패턴' 카테고리의 다른 글
구조패턴 : Bridge 패턴 (0) 2013.01.23 구조패턴 : Adapter (Wrapper) 패턴 (0) 2013.01.21 생성패턴 : Prototype 패턴 (0) 2013.01.15 생성패턴 : Factory Method 패턴 (0) 2013.01.10 생성패턴 : Builder 패턴 (0) 2012.12.28 댓글