블로그 이미지
.
속눈썹맨

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

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 31

Singleton 구현

2005. 5. 11. 18:07 | Posted by 속눈썹맨
참고) Modern C++ Design, Chapter 6 싱글톤 구현

1. Static Member function, Static Member Variable 이용
   . 간단, 생성자를 이용할 수 없음

2. pointer이용
   . 생성자 이용가능
   . Client가 지워버릴 수 있음
   . 소멸이 안됨, 리소스 반환 문제

3. reference 이용
   . 생성자 이용가능
   . Client가 지워버릴 수 없음
   . 소멸이 안됨, 리소스 반환 문제

4. Local Static Member 이용(Meyer방법)
   . 생성자 이용가능
   . Client가 지워버릴 수 없음
   . 소멸이 잘됨
   . 리소스 반환 문제없음
   . Singleton이 다른 singleton을 참조할 때 문제

5. 감지 방법 추가
   . Singleton이 다른 singleton을 참조할 때 문제 handling만 가능, 해결은 아님.  

6. Pheonix Singleton
   . 생성자 이용가능
   . Client가 지워버릴 수 없음
   . 소멸이 잘됨
   . 리소스 반환 문제없음
   . Singleton이 다른 singleton을 참조할 때 문제해결
   . atexit()함수가 reentrent하지 않은 컴파일러, 라이브러리에서는
     문제가 생김.

7. 수명제어 Singleton
   . dependency를 제어해 줄 수 있게 만듬.(longevity 이용)

8. Multithread Singleton
   . Lock으로 보호, 성능이 느림

9. 이중 검사 Multithread Singleton
   . Lock으로 보호, 성능이 빠름
   . Multi CPU일 경우 사용이 불가능 할 수도 있음