C++ 이나 어떠한 언어로 프로그램을 작성하다보면 어느 문제나 그렇듯 깔끔한 인터페이스에 대한 코딩이 어렵게 느껴집니다. 그래서 공통적으로 사용하는 형태들이 모여 패턴이 되고 그 패턴들을 디자인 패턴이라고 칭하게 됩니다.
그 중 실질적으로 단 하나의 개체에 대하여 접근하는 인터페이스가 존재하죠. 그 이름은 Singleton입니다. 사실 이미 많이 알려져있는 인터페이스이고, 많은 사람들이 사용하고 있는 디자인 패턴이기 때문에 지지부진 할지도 모르겠습니다. 하지만 정리하는 차원에서 올립니다.
Singleton의 최대 요점은 생성자의 private, static 함수를 통한 단 하나의 통로입니다. static 함수는 해당 클래스에 대한 내부 코드에서 클래스의 인스턴스를 얻는 통로이고, private 생성자로써 공개적인 객체의 선언을 제한시키는 것입니다.
위와 같은 코드로써 설명할 수 있습니다. 말로써 복잡하게 설명하느니 코드로 간단하게 설명하는 것 만큼 더 좋은 것이 없죠. 위 코드는 스캇 마이어스가 사용하는 싱글톤 코드 입니다. Static 범위를 가지는 개체를 선언하고 있고, return 시 그 주소를 돌려줌으로써 별다른 객체의 초기화같은 단계가 필요없어지는 셈이죠.
cs 코드에서는 private static 개체의 변수를 하나 지니고 있는 것을 볼 수 있습니다. 그리고 Instance 가 null 이냐 아니냐에 따라서 객체를 생성후 그 레퍼런스를 리턴하는 것이죠. 이러한 싱글톤 인터페이스는 단 하나의 DB서버, Keyboard, Mouse들과 관련된 프로그래밍에 적용할 수 있습니다. static이니 만큼 언제 어디서나 모든 클래스에서 GetInstance만 호출함으로써 객체에 접근할 수 있습니다. 이 것 말고도 좋은 패턴들이 많은데, 각자 경우에 맞는 것을 사용하면 효율이 극대화 되겠죠.
"Programming" 분류의 다른 글
| DebuggerOnC (2) | 2010/09/01 |
| Script Interpreter - boost::spirit (0) | 2010/03/09 |
| VirtualHttpServer - 가상URL 처리 서버 (4) | 2010/02/22 |
| Gradient 작성중에 있습니다. (3) | 2008/12/18 |
| 한게임 자동테트리스 Ver 0.6 (43) | 2008/11/15 |
TAG Singleton

댓글을 달아 주세요