티스토리 뷰
싱글톤 패턴의 전형적인 자바 구현:
위의 구현의 문제점은 getInstance가 synchronized는 것이다.
- public class Singleton {
- static Singleton instance;
- public static synchronized Singleton getInstance() {
- if (instance == null) {
- instance == new Singleton();
- }
- return instance;
- }
- }
그래서 좀 지저분하지만 현실적인 해결책으로:
이런 식의 코드를 쓰곤 했는데...
- public static Singleton getInstance() {
- if (instance == null) {
- synchronized (Singleton.class) {
- if (instance == null) {
- instance == new Singleton();
- }
- }
- }
- return instance;
- }
여기~ 더 멋진 방법이 있다!
- public class Singleton {
- static class SingletonHolder {
- static Singleton instance = new Singleton();
- }
- public static Singleton getInstance() {
- return SingletonHolder.instance;
- }
- }
스프링까지 동원하기 뭣한 작은 프로그램이나, 프레임워크와 독립적으로 동작해야하는 유틸리티 클래스에서 유용하게 써먹을 수 있겠다.
'hacking > java' 카테고리의 다른 글
Maven2와 Eclipse/WTP 함께쓰기 (2) (0) | 2007.09.13 |
---|---|
Maven2와 Eclipse/WTP 함께쓰기 (0) | 2007.09.11 |
Java6 XMLOutputFactory 유감 (2) | 2007.01.15 |
XML Exodus... (3) | 2007.01.07 |
아니~ 버~ㄹ써! Java6~ (0) | 2006.12.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- DeveloperWorks
- 독후감
- JavaScript
- docker
- 해남
- 자전거
- 책
- maven
- 장필순
- webapp
- web
- 영화
- HTML5
- Eclipse
- ***
- Dojo
- nodejs
- CSS
- 여행
- **
- Java
- jQuery
- Prototype
- ***1/2
- Ajax
- ****
- 땅끝마을
- 자바스크립트
- 노래
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함