ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. singleton
singletoneÀº Çѹø¿¡ Çϳª¾¿ÀÇ ÆÐ¸¸ º¸¿©Áشٴ Àǹ̸¦ °¡Áö°í ÀÖ´Ù. Á»´õ ÀϹÝÀûÀ¸·Î´Â Çѹø¿¡ ÇϳªÀÇ »ç°Ç¸¸ ÀϾµµ·Ï ÇÑ´Ù¶ó´Â ÀÇ¹Ì·Î ÇØ¼®ÇÒ ¼ö ÀÖÀ» °Í °°´Ù.
¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ ¿µ¿ª¿¡¼ÀÇ singletoneÀº °´Ã¼ÁöÇâÇÁ·Î±×·¡¹Ö½Ã Ŭ·¡½º°¡ ´ÜÇϳªÀÇ »ç°Ç, Áï ´Ü ÇϳªÀÇ ÀνºÅϽº¸¸À» °¡Áöµµ·Ï ÇÏ´Â ÆÐÅÏÀÌ´Ù. ÀÌ ÆÐÅÏÀº ÁÖ·Î Áß¿äÇÑÀÚ¿øÀ» °ü¸®ÇϰíÀÚ ÇÒ¶§, ´Ù¼öÀÇ ÀνºÅϽº°¡ »ý¼ºµÇÁö ¾Êµµ·Ï Á¦ÇÑÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. ¿¹ÄÁµ¥, Çѹø¿¡ ÇϳªÀÇ ÀνºÅϽº¸¸ÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áµÇ´Â°Ô º¸Àå¹Þ±â¸¦ ¿øÇÏ´Â °æ¿ìµîÀÌ´Ù.
singletoneÀº ´Ù¸¥ ÆÐÅϵé°úµµ ¾î¿ï·Á¼ »ç¿ëÇÒ ¼ö Àִµ¥, ´ÙÀ½°ú °°Àº °æ¿ìµéÀÌ´Ù.
single class
singletonÀÇ ÀνºÅϽº´Â getInstance()¸Þ¼µå¸¦ ÅëÇØ¼¸¸ »ý¼ºÇÒ ¼ö ÀÖµµ·Ï ÇϹǷνá, ÇϳªÀÇ ÀνºÅϽº¸¸À» »ý¼ºÇϵµ·Ï Á¦¾îÇÒ ¼ö ÀÖ´Ù. ¿¹Á¦#include <iostream>
using namespace std;
class Mutex
{
};
# Mutex Á¦¾î Ŭ·¡½º
class Lock
{
private:
Mutex &mutex;
public:
Lock(Mutex& m) : mutex(m) {}
~Lock() {}
};
class Singleton
{
public :
static Singleton *GetInstance();
int a;
private:
Singleton(int _a)
{
a = _a;
cout << "In Ctor" << endl;
}
~Singleton() {cout << "In Dtor" << endl;}
static Mutex mutex;
Singleton(const Singleton&);
};
Mutex Singleton::mutex;
Singleton *Singleton::GetInstance()
{
Lock lock(mutex);
cout << "Get Inst" << endl;
static Singleton myinst(1);
return &myinst;
};
int main()
{
Singleton *singleton = Singleton::GetInstance();
cout << "The value of the singleton : " << singleton->a << endl;
return 0;
}
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|