푸후. 디자인패턴과 네트워크 포스팅의 첫삽이군요.
아직 완전히 결합시켜 이해중인게 아니라서 제대로 써 질지 고민됩니다.
------------------------------------------------------------------------------
Singleton 패턴이란 녀석이 디자인패턴에 있습니다.
디자인패턴은 객체지향 언어로 프로그래밍할 경우 잡는 하나의 기본 골격인데요.
Singleton 패턴은 이런 골격중 하나이지요.
Skeleton이랑 비슷하다고 이런건 아닙니다 -_-;
아 깜찍해 -_-
Singleton 패턴은 single이라는 앞단어와 관련있습니다.
"유일한!" 객체라는 겁니다.
왜 Unique가 아니냐고 물어보면 할말 없습니다.
GoF(Gang of Four, 디자인패턴의 창시멤버)형제들에게 물어보세요 그건 -_-;
Singleton패턴은 객체지향에서 여러 객체가 동시에 사용할수 있는 전역변수를
Java같은 언어에선 사용할수 없기 때문에 탄생한 녀석입니다.
동시에 C++이더라도 단순전역변수는 캡슐화가 거의 되지 않는다는 단점도 극복해줄수 있지요.
대충 코드를 보자면 이러합니다. >
제가 싫어하는 자바이긴 하지만 -_-
디자인패턴 구현시에는 자바가 훨씬 편하고 유용한 편입니다.
저렇게 하면 한 프로세스 내에서 단 한개만의 객체만 존재하게 됩니다.
그래서 "유일한!" 객체라는 거지요 -_-;
클래스가 유일하다는게 아닙니다.
멀티스레드 사용시 서로 엉켜서 두개, 세개, 네개씩 객체가 생성되기도 합니다만,
이때는 DCL이라는 새로운 기법의 패턴을 적용합니다.
Double Checking Lock이라는건데... 이는 나중에 다시 언급하도록 하지요.
자... 그런데 왜 Singleton & Server라는 제목이 붙었을까요?
.....
생각해보시면 답은 간단합니다.
한국에 살고 있습니다.
근데 정부가 3개입니다.
어쩔껍니까 -_-;;
에누리없이 이말 튀어나와야죠 =ㅁ=....
Singleton 객체는 이렇게 "꼭 하나만 존재해야 할 때" 씁니다.
아, 물론 정부가 2~3개씩 되는 내분이 피터지는 국가들도 있겠지만;;
이런 특수한 케이스는 예외로 합시다.
------------------------------------------------------------------------------
포스트가 의외로 짧습니다. -_-;;
다음 포스트에는 클라이언트와 옵저버패턴에 대해 언급해야 겠군요.
아직 완전히 결합시켜 이해중인게 아니라서 제대로 써 질지 고민됩니다.
------------------------------------------------------------------------------
Singleton 패턴이란 녀석이 디자인패턴에 있습니다.
디자인패턴은 객체지향 언어로 프로그래밍할 경우 잡는 하나의 기본 골격인데요.
Singleton 패턴은 이런 골격중 하나이지요.
Skeleton이랑 비슷하다고 이런건 아닙니다 -_-;
아 깜찍해 -_-
Singleton 패턴은 single이라는 앞단어와 관련있습니다.
"유일한!" 객체라는 겁니다.
왜 Unique가 아니냐고 물어보면 할말 없습니다.
GoF(Gang of Four, 디자인패턴의 창시멤버)형제들에게 물어보세요 그건 -_-;
Singleton패턴은 객체지향에서 여러 객체가 동시에 사용할수 있는 전역변수를
Java같은 언어에선 사용할수 없기 때문에 탄생한 녀석입니다.
동시에 C++이더라도 단순전역변수는 캡슐화가 거의 되지 않는다는 단점도 극복해줄수 있지요.
대충 코드를 보자면 이러합니다. >
제가 싫어하는 자바이긴 하지만 -_-
디자인패턴 구현시에는 자바가 훨씬 편하고 유용한 편입니다.
저렇게 하면 한 프로세스 내에서 단 한개만의 객체만 존재하게 됩니다.
그래서 "유일한!" 객체라는 거지요 -_-;
클래스가 유일하다는게 아닙니다.
멀티스레드 사용시 서로 엉켜서 두개, 세개, 네개씩 객체가 생성되기도 합니다만,
이때는 DCL이라는 새로운 기법의 패턴을 적용합니다.
Double Checking Lock이라는건데... 이는 나중에 다시 언급하도록 하지요.
자... 그런데 왜 Singleton & Server라는 제목이 붙었을까요?
.....
생각해보시면 답은 간단합니다.
한국에 살고 있습니다.
근데 정부가 3개입니다.
어쩔껍니까 -_-;;
에누리없이 이말 튀어나와야죠 =ㅁ=....
Singleton 객체는 이렇게 "꼭 하나만 존재해야 할 때" 씁니다.
아, 물론 정부가 2~3개씩 되는 내분이 피터지는 국가들도 있겠지만;;
이런 특수한 케이스는 예외로 합시다.
------------------------------------------------------------------------------
포스트가 의외로 짧습니다. -_-;;
다음 포스트에는 클라이언트와 옵저버패턴에 대해 언급해야 겠군요.
'(비정기) Dlbo's Post' 카테고리의 다른 글
Dlbo's Post 연기 공지. (1) | 2009.04.07 |
---|---|
Design Pattern & Network, 3. Observer & Client. (3) | 2009.03.31 |
Design Pattern & Network, 1. Introduction. (0) | 2009.03.19 |
Dlbo's post 연기 공지 (0) | 2009.03.15 |
Generic Algorithm with C++, Last -min, max, foreach (0) | 2009.03.10 |