생성(Creational) 패턴 - Singleton
2007/05/19 12:52
Singleton 패턴은 Creational 패턴들과 같은 그룹에 속하지만, "non-creational" 패턴의 확장적인 면이 있음. 프로그래밍에서 클래스의 인스턴스를 하나만을 갖게 해야 할 경우에 사용.
1. 의도
클래스에서 만들 수 잇는 인스턴스가 오직 하나여야 하고, 이 오브젝트에 대한 접근은 어디에서든지 항상 동일한 방법으로 접근 할 수 잇도록 제공.
2. 고려해야 할 사항

4. 자바 프로그래밍 언어에서의 사용 예
1. 의도
클래스에서 만들 수 잇는 인스턴스가 오직 하나여야 하고, 이 오브젝트에 대한 접근은 어디에서든지 항상 동일한 방법으로 접근 할 수 잇도록 제공.
2. 고려해야 할 사항
- 어떤 클래스는 단 하나의 인스턴만 생성되어야 함.
- 단 하나의 인스턴스는 언제든지 사용할 수 있어야 함.
- 클래스를 이용해 생성된 하나의 인스턴스는 모든 클라이언트가 쉽게 억세스 할 수 있어야함.

4. 자바 프로그래밍 언어에서의 사용 예
- Java API중 java.lang.Runtime 클래스가 Sigleton 클래스를 사용
- 장점
클라이언트는 쉽게 싱글 오브젝트 레퍼런스를 얻을 수 있음.
Singleton은 클래스 로딩 타임 또는 클라이언트가 객체 생성을 요청했을 때 인스턴스를 생성할 수 있음.
Singleton 클래스의 인스턴스가 하나 이상 존재해야 하는 경우 이 변경작업이 쉬움. 즉, Singleton 클래스의 인스턴스에 접근할 수 있는 허용 범위를 결정하는 오퍼레이션만 변경하면 됨. 왜냐하면 기존에는 하나의 인스턴스로만 접근을 허용했다면, 이제는 여러 개의 인스턴스를 생성해서 그 각각의 인스턴스로 접근 할 수 잇도록 오퍼레이션의 구현을 바꾸면 됨. - 단점
Singleton은 전역변수의 용도록 사용될 수 잇음. 그러나 이 방법은 종종 잘못 적용되는 경우가 많음.
Singleton은 여러 클라이언트가 동시에 인스턴스를 생성해달라고 요청할 때에도 단 하나의 인스턴스만 생성되도록 제어해야 함.
Trackback Address:http://blog.htdocs.kr/trackback/14

싱글톤을 적용하여 웹 프로젝트에서 어떤 작업에 적용 할 수 있는지 궁금한데요
lsv400@naver.com 부탁 드립니다.