• ÇÁ¸®Ä«¿îÅÍ
  • Ç÷¡½ÃºÏ
  • ÇÁ¸®º¸µå
  • Àü±¤ÆÇ
  • À¥°øºÎ¹æ
  • Ä¿¹Â´ÏƼ
[ÆÐÅÏ]½Ì±ÛÅÏ 2008.08.03 20:40
±Û¾´ÀÌ : ¿î¿µÀÚ Á¶È¸ : 535 Ãßõ : 0

ÆÐÅÏÁß °¡Àå ½±°í ´ëºÎºÐ ¸ÕÀú ½ÀµæÇÏ´Â °ÍÀ¸·Î

ÇϳªÀÇ ÀνºÅϽº¸¸À» »ý¼ºÇؼ­ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.

¿Ö ÇϳªÀÇ ÀνºÅϽº¸¸À» »ý¼ºÇÒ±î. º¸Åë Àü¿ªÀÛ¾÷°ø°£ ¶Ç´Â ´Ü Çϳª¸¸ Á¸ÀçÇؾßÇÑ´Ù´Â °¡Á¤ÀÌ ÇÊ¿äÇÒ¶§ ¾´´Ù.

¿©·¯»ç¶÷ÀÌ ÀÛ¾÷Çϰųª »ó¼ÓÀ» ¹Þ¾Æ¾²´Â ¶óÀ̺귯¸®ÀÏ°æ¿ì ĸ½¶È­ÀÇ Æ¯¼º»ó °¢ ¸ðµâµéÀÇ ¼Ò½º°¡ ¾î¶»°Ô ¸¸µé¾îÁ³´ÂÁö ¾ËÇÊ¿ä°¡ ¾ø°Ú±Ý ¸¸µå´Â°ÍÀÌ °¡Àå ÀÌ»óÀûÀÌ´Ù. ÀÌ·²°æ¿ì ÀνºÅϽº³ª Ŭ·¡½ºµéÀÌ ¾ðÁ¦ ¾îµð¼­ »ý°ÜÀÖ´ÂÁö ÀǵµÇÏÁö ¾Ê´Â »óȲÀÌ ¹ß»ýÇß´ÂÁöÀÇ ¿©ºÎ¸¦ ¾Ë·ÁÁÙ ¾ÈÀüÀåÄ¡°¡ ÇÊ¿äÇÏ´Ù. ½Ì±ÛÅÏ¿¡¼­´Â ¸¸¾à ÀÌ·¸°Ô ÀǵµÇÏÁö ¾ÊÀº »óȲÀÌ ¹ß»ýÇßÀ»°æ¿ì ¾Ë·ÁÁÙ¼öÀְԵȴÙ.

package{

class Singleton_class{

private static var once_ins:Singleton_class==null;

private funciton Singleton_class(){

}

 public static function instance():Singleton_class {

if(Singleton_class.once_ins==null){

Singleton_class.once_ins=new Singleton_class();

}

return Singleton.once_ins;

}//end instance

}//end class

}//end package

 

¸ÕÀú static¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÏ´Ù. staticÀ¸·Î ¼±¾ðµÈ ¿¤¸®¸ÕÆ®µé(¼Ó¼º,Æã¼Ç µî)Àº Ç÷¡½ÃÀÇ ¾î´À°÷¿¡¼­µç Á¢±ÙÇÒ¼öÀÖ´Ù.

À̸»Àº ÀνºÅϽº°¡ »ý±âÁö ¾Ê¾Æµµ Àü¿ª°ø°£¿¡ »ý¼ºÀÌ µÊÀ» ÀǹÌÇÑ´Ù. ¿ø½ÃºÎ¸ðŬ·¡½º.static À¸·Î ¼±¾ðµÈ ¿ä¼Ò ·Î ±×°Í¿¡ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.

ÀϹÝÀûÀ¸·Î ÀÌ·±Á¡¶§¹®¿¡ 2.0¿¡¼­ _global Àü¿ª ¿ä¼Ò¸¦ ´ëüÇؼ­ »ç¿ëÇϰԵȴÙ.

ÇÏÁö¸¸ ÀÌ°ÍÀ» »ç¿ëÇÒ¶§´Â ÁÖÀÇÇؾߵÉÁ¡ÀÌ ÀÖ´Ù. ÀÌ¹Ì Á¸ÀçÇÏ´ÂÁö¸¦ ¾Ë¾Æ¾ßµÈ´Ù. ´Ü¼øÈ÷ ÇØ´ç Ŭ·¡½º°¡ À¯¿ëÇÑ À¯Æ¿µéÀÇ Æã¼Ç¸ðÀ½ÀÌ°í Æã¼ÇµéÀÇ ¼­·Î°£ °£¼·ÀÌ ¾ø´Ù¸é ÀνºÅϽº¸¦ ÇÊ¿äÇÏÁö ¾ÊÀ»Áöµµ ¸ð¸¥´Ù. ÇÏÁö¸¸ ½Ì±ÛÅÏÆÐÅÏÀ» »ç¿ëÇϴ¸ñÀûÀº ´Ü Çϳª¸¸ Á¸ÀçÇÏ´Â ÀνºÅϽº¸¦ ¸¸µé°í ±×¾ÈÀÇ ¿ä¼ÒµéÀº ±× ÇϳªÀÇ ¿ÂÀüÇÑ ÀνºÅϽº°¡ ÀÛµ¿ÇϱâÀ§ÇØ Á¤»óÀûÀÎ µ¥ÀÌÅ͸¦ ¼­·Î ³»ºÎ¿¡¼­ ÁÖ°í¹Þ´Â ÀýÂ÷¸¦ °®´Â Áö±ØÈ÷ Á¤»óÀûÀΠŬ·¡½ºÀÌ´Ù. ±×·¯¹Ç·Î ±×¾ÈÀÇ º¯È­µÈ µ¥ÀÌÅ͵éÀ» ¾ò±âÀ§Çؼ­´Â ÀνºÅϽº¸¦ ¾ò¾î¾ß¸¸ÇÑ´Ù. ´Ü Çϳª¸¸ Á¸ÀçÇÏ´Â ÀνºÅϽº.

ÀÌ°ÍÀ» º¸ÀåÇϱâÀ§Çؼ­ ¹Ýµå½Ã ÇÊ¿äÇÑ°ÍÀÌ »ý¼ºÀÚ¸¦ private·Î ¼±¾ðÇϴ°ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î »ý¼ºÀÚ´Â publicÀ¸·Î »ý¼ºÇϰԵǾî

new Ŭ·¡½º(); ¸¦ ÇϰԵǸé ÄÄÆÄÀÏ·¯´Â Ŭ·¡½º ¾È¿¡ÀÖ´Â »ý¼ºÀÚ¸¦ ÀÚµ¿À¸·Î ½ÇÇàÇϰԵȴÙ. ±×·±µ¥ ÀÌ »ý¼ºÀÚµµ Æã¼ÇÀ̹ǷΠnew¸¦ ½á¼­ ÇØ´ç Ŭ·¡½º¸¦ »ç¿ëÇÏ·ÁÇÏ´Â ÁÖü°¡ ¾Æ¹«³ª ÀÏ°æ¿ì´Â publicÀ¸·Î ÇÏ°ÚÁö¸¸ À̹ø°æ¿ì¿¡´Â ÀÚ±â ÀÚ½ÅÀ¸·Î ÁöÁ¤Çß´Ù. ÀÚ±âÀڽŸ¸ÀÌ »ý¼ºÇÒ¼öÀִ°ÍÀÌ´Ù. new Ŭ·¡½º();¸¦ ÇÏ°ÔµÇ¸é ¿¡·¯°¡³­´Ù. ÀÌ Å¬·¡½º´Â ¿ÀÁ÷ ÇϳªÀÇ ÀνºÅϽº¸¸ »ý¼ºÇÒ¼öÀÖÀ¸¸ç instance·Î¸¸ »ý¼ºÇÒ¼öÀÖ´Ù°í ¾Ë·ÁÁÖ°í ¿¡·¯¸¦ ³»´Â°ÍÀÌ ÁÁ´Ù. ÀÌ·¸°Ô ÀνºÅϽº¸¦ Çϳª¸¸ Á¸ÀçÇÒ¼öÀÖµµ·Ï À¯ÁöÇÏ´Â ¹æ¹ýÀÌ ½Ì±ÛÅÏÀÌ´Ù.

new ¸¦ Çѹø¸¸ ½ÇÇàÇϱâÀ§Çؼ­ instance() °¡ Á¸ÀçÇϴµ¥  ±×¾È¿¡¼­´Â Á¸ÀçÇÒ°æ¿ì´Â new¸¦ ½ÇÇàÇÏÁö ¾Ê°í ±âÁ¸¿¡ Á¸ÀçÇÏÁö ¾Ê´Â°æ¿ì(¸ÇóÀ½)¿¡´Â ¸¸µç´Ù. instance()´Â ´ç¿¬È÷ À¯ÀÏÇÑ Á¢±Ù Æã¼ÇÀ̹ǷΠpublicÀ¸·Î ÇؾßÇÑ´Ù. ÀÚ±âÀÚ½ÅÀÌ¿Ü¿¡ ¾Æ¹«µµ Á¢±ÙÇÒ¼ö¾ø´Â once_ins¸¦ ¾ò¾î¿Í¼­ ÀÌÈÄÀÇ ÀÛ¾÷À» ÁøÇàÇÑ´Ù.

¿Ö ÀÌ·±ÁþÀ» Çϸ鼭±îÁö ÀÌ°ÍÀ» ½á¾ßÇϴ°¡ ÇÏ´ÂÁ¡ÀÌ ±Ã±ÝÇÒ°ÍÀÌ´Ù.

¿©·¯ Ŭ·¡½ºµéÀÌ °ø¿ëÀ¸·Î Á¸ÀçÇÏ´Â ¾î¶²°ÍÀ» ¾²±âÀ§Çؼ­´Â exteds ºÎ¸ðŬ·¡½º ·Î ºÎ¸ð°¡ °¡Áö°íÀÖ´Â ¿ä¼ÒµéÀ» °í½º¶õÈ÷ °¡Á®¿À°ÔµÈ´Ù.

ÇÏÁö¸¸ ÀÌ·¸°Ô ´Ü¼øÈ÷ ±× ±â´ÉÀ» °øÀ¯ÇϱâÀ§Çؼ­ »ó¼ÓÀ» ³²¹ßÇϴ°ÍÀº »ó´çÈ÷ ³­ÇØÇÑ ¹®Á¦°¡ ¹ß»ýÇÒ¼öµµÀֱ⶧¹®¿¡ ¶§·Î´Â ÀÌ°ÍÀ» »ç¿ëÇؾߵɰæ¿ì°¡ ´õ Æí¸®ÇÒ¼öÀÖ´Ù. ¿¬ÀåÀÌ ´õ ¸¹´Ù¸é ÀûÀýÇÑ ¹æ¹ýÀ¸·Î È¿°úÀûÀÎ °á°ú¸¦ ¾òÀ»¼ö Àִ°ÍÀÌ´Ù.

ÀÌ°ÍÀ» ³²¿ëÇÑ´Ù¸é ²À »ó¼ÓÀ» ÅëÇؼ­ ÇؾßÇÒ°æ¿ì¸¦ ³õÃļ­ ´õ °í»ýÇÒ¼öµµÀÖ´Ù.

 var ss:Singleton_class=Singleton_class.instance(); ¸¦ »ý¼ºÇϴ°ÍÀ¸·Î ¾ÈÀüÇÏ°Ô ÇϳªÀÇ ½Ì±ÛÅÏÀ» »ý¼ºÇس¾¼öÀÖ´Ù.

new¸¦ ÇØ¾ßµÉ ½ÃÁ¡À» ãÀ» ÇÊ¿ä°¡ ¾ø´Â°ÍÀÌ´Ù. ¾ðÁ¦ ¾îµð¼­µç  Singleton_class.instance() ¸¸ ¼±¾ðÇÏ¸é °ø¿ëµÈ °ø°£¿¡ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.

ÀλýÀº ª½À´Ï´Ù.
±×·¯¹Ç·Î ´Ù¸¥ »ç¶÷ÀÌ ¿ä±¸ÇÏ´Â »îÀ» »ì¸é¼­ ½Ã°£À» ³¶ºñÇؼ­´Â ¾È µË´Ï´Ù.
µ·°ú ¸í¿¹¸¦ ¾òÁö ¸øÇÏ´õ¶óµµ ³¡±îÁö ÀÚ½ÅÀÇ ±æÀ» °íÁýÇϽʽÿÀ
¸ñ·Ï À­±Û ¾Æ·§±Û
³»¾Ë FREECOUNT.NET ÇÁÄ«³Ý »ý±ä³¯ 2003.12.20 Ȩ | Ä«¿îÅÍ | Ç÷¡½ÃºÏ | ÇÁ¸®º¸µå | Àü±¤ÆÇ | À¥°øºÎ¹æ | Ä¿¹Â´ÏƼ | ÂÊÁöÇÔ