±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
½Ã¸®Áî °­Á ½Ã¸®Áî °­Á ÀÔ´Ï´Ù.
±Û³»¿ë - ½Ã¸®Áî °­ÁÂ
 µ¨ÆÄÀÌ µðÀÚÀÎÆÐÅÏ °­Á - Àü·«(Strategy) ÆÐÅÏ
𸮺ê¶ó¿î
(±Ç±¤ÀÏ)
2019-04-25 ¿ÀÈÄ 1:08:05
3129ȸ Á¶È¸


÷ºÎÆÄÀÏ ´Ù¿î·Îµå
Strategy Parttern.zip

µé¾î°¡±âÀü ¸ÕÀú ¸»¾¸ µå¸®´Âµ¥, µðÀÚÀÎ ÆÐÅÏÁß Àü·«ÆÐÅÏÀº ´Ù¼Ò º¹ÀâÇÑ ÆÐÅÏÀ̹ǷÎ

ÀÌÇØÀÇ ¾î·Á¿òÀÌ ÀÖÀ» ¼ö ÀÖÀ¸´Ï °¡´ÉÇÑ ¿¹Á¦ ¼Ò½º¸¦ ÂüÁ¶ÇÏ¿© ÀÌÇظ¦ µ½±â ¹Ù¶ø´Ï´Ù.

 

À̹ø½Ã°£Àº Strategy ÆÐÅÏ¿¡ ´ëÇÑ °­ÀÇ´Ù.

Strategy ÆÐÅÏÀ» ½±°Ô ÀÌÇØÇÏ´Â ¹æ¹ýÀº,

»ó¼ÓÀÇ ´ÜÁ¡ µÎ°¡Áö(ºÒÇÊ¿äÇÑ ±â´É»ó¼Ó, ´ÙÁß»ó¼Ó ºÒÇã) º¸¿ÏÇϱâ À§ÇÑ Interface ÀÇ »ç¿ë°ú Abstract ÆÐÅÏÀÇ

»ç¿ëÀ» ÅëÇÑ ¸Þ¼­µåÀÇ ´ÙÇü¼º º¸ÀåÀÌ´Ù.

Strategy ÆÐÅÏ¿¡ ´ëÇØ ±¸±Û¸µÀ» ÇØ º¸¸é Abstract ÆÐÅϸ¸À» °­Á¶ÇÏ¿© µµ½ÄÈ­ ÇØ ³õ°í Strategy ÆÐÅÏÀ̶ó°í ¾Ë·Á

ÁÖ´Â °÷ÀÌ ¸¹Àºµ¥, ÀÌ´Â À߸øµÈ ¼³¸íÀÌ´Ù.

Strategy ÆÐÅÏÀÇ ÁøÁ¤ÇÑ ¶æÀº ÀÚÁÖ ¹Ù²î´Â °³¹ß ¿ä±¸»çÇ׿¡ ´ëºñÇØ ÃÖ¼ÒÀÇ ºñ¿ëÀ» µé¿© Àü·«ÀûÀ¸·Î Äڵ尡

À¯¿¬¼ºÀ» °¡Áú ¼ö ÀÖµµ·Ï ¼³°èÇÏ´Â ±â¹ýÀÌ´Ù.


(ÄÚµåÀÇ À¯¿¬¼ºÀ̶õ ¸» ¾È¿¡´Â ±â´ÉÀÇ ±¸Çö¾øÀÌ ¿Ï¼ºµÈ ¸ðµâÀ» Àçºü¸£°Ô °¡Á®´Ù ¾µ¼ö ÀÖµµ·Ï ÇÏ´Â Àü·«µµ

Æ÷ÇԵȴÙ.)

 

¿¹¸¦ µé¾î Â÷¸¦ »ý»êÇϴµ¥,

Â÷ÀÇ ÇÁ·¹ÀÓÀº °íÁ¤µÇ¾î ÀÖÁö¸¸ Â÷¿¡ ºÎÂøµÇ´Â ¿É¼ÇÀº Â÷·® ÁÖ¹®ÀÚÀÇ ¿ä±¸¿¡ ÀÇÇØ ¼ö½Ã·Î ¹Ù²ï´Ù.
ÀÌ·²¶§ Á¦Á¶¿¡ ÇÊ¿äÇÑ ÁÖ¹®ÀÚÀÇ ¿ä±¸»çÇ׿¡¼­ ¹þ¾î³­ ¸ðµç ¿É¼ÇºÎÇ°ÀÌ µç °Å´ëÇÑ »óÀÚ¸¦ ÇÁ·¹ÀÓ ¿·¿¡ µÎ°í

Â÷¸¦ Á¶¸³ÇÏ´Â °ÍÀº °ø°£ÀûÀΠ³¶ºñ¿Í ±âŸºñ¿ëÀÌ ¸¹ÀÌ µé »Ó ¾Æ´Ï¶ó ¼ö¸¹Àº ºÎÇ°Áß¿¡ ÇÊ¿äÇÑ ºÎÇ°À» ã´Âµ¥

(°¡µ¶¼º ¶³¾îÁü) ½Ã°£À» ¼Ò¸ðÇØ¾ß Çϱ⠶§¹®¿¡ »ý»ê¼º ¶ÇÇÑ ¶³¾îÁø´Ù.

ÀÌ·± °æ¿ì¸¦ ÇÁ·Î±×·¥¿¡¼­´Â °£´ÜÇÑ ±â´É Çϳª¸¸ ÇÊ¿äÇѵ¥ ºÒÇÊ¿äÇÏ°Ô Super Class ¸¦ »ó¼Ó¹Þ¾Æ ¾´´Ù¶ó°í

Ç¥ÇöÇÑ´Ù. ¿¾¸»¿¡ "´ß Àâ´Âµ¥ ¼ÒÀâ´Â Ä® ¾´´Ù." ¶ó´Â ¸»ÀÌ ÀÌ °æ¿ìÀÌ´Ù.

°æ¿ì¿¡ OOP¿¡¼­ »ó¼ÓÀÌ ÀÌ¿¡ ÇØ´çµÈ´Ù.

»ó¼ÓÀº °æ¿ì¿¡ µû¶ó ºñ¿ëÀÌ ¸¹ÀÌ µé¼ö ÀÖÀ¸¸ç, ´ÜÀÏ »ó¼Ó¹Û¿¡ µÇÁö ¾Ê´Â Ä¡¸íÀûÀÎ ´ÜÁ¡ ´ë¹®¿¡ ÄÚµåÀÇ À¯¿¬¼ºÀÌ

±Þ°ÝÇÏ°Ô ¶³¾îÁø´Ù. À̸¦ ÇØ°áÇϱâ À§Çؼ­´Â ´ÙÁß»ó¼ÓÀÌ °¡´ÉÇÑ Interface ¾ê±â¸¦ »©³õÀ» ¼ö ¾ø´Âµ¥,

´ëºÎºÐÀÇ °­ÁµéÀÌ ±×ºÎºÐÀ» °£°úÇÏ¿© ¼³¸íÇÏ°í ÀÖ´Ù.

¶ÇÇÑ,  Interface ºÎºÐÀ» ¼³¸íÇÒ¶§ Interface ´Â ¿ø·¡ Á¤ÀǸ¸ ÇÏ°í Interface ¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º¿¡¼­

¸ðµç °ÍÀ» ±¸ÇöÇÑ´Ù¶ó°í¸¸ ¼³¸íÇÏ°í ÀÖ¾î Stragy ÆÐÅÏÀ» ÀÌÇØÇϴµ¥ È¥¶õÀ» Áֱ⵵ ÇÑ´Ù.

ÇÏÁö¸¸, ÀÌ´Â ¾ö¿¬È÷ À߸øµÈ ¼³¸íÀÌ´Ù.

Strategy ÆÐÅÏÀº ¿Ï¼ºµÈ ±â´ÉµéÀ» °¡Áø ¸ðµâµéÀ» ¾î¶² ±¸Çöµµ ¾øÀÌ Àçºü¸£°Ô °¡Á®´Ù ¾µ¼ö ÀÖµµ·Ï ¼³°èÇÏ¿©¾ß

Strategy(Àü·«)ÆÐÅÏÀÌ °¡Áø À̸§°ªÀ» Á¦´ë·Î ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.


±â´É ¸ðµÎ¸¦ Á÷Á¢±¸ÇöÇÏ¿©¾ß ÇÑ´Ù¸é ÀÌ ³­ÇØÇÑ ÆÐÅÏÀ» ±»ÀÌ °¡Á®´Ù ¾²´Â ÀÌÁ¡ÀÌ ¹«¾ùÀ̶õ ¸»Àΰ¡?

ÀÌ´Â Strategy ÆÐÅÏ¿¡ ´ëÇÑ À߸øµÈ ¿ÀÇØÀÌ´Ù.

 

Áö±Ý ºÎÅÍ´Â ºñÀ¯¸¦ ¹Ù²Ù¾î »ó¼ÓÀÇ ´ÜÁ¡¿¡ ´ëÇØ Á»´õ »ó¼¼È÷ ¼³¸íÇÏ°Ú´Ù.

°¡Àå Å« ´ÜÁ¡Àº »óÀ§Å¬·¡½º¸¦ »ó¼Ó¹ÞÀº ÇÏÀ§Å¬·¡½º´Â ºÒÇÊ¿äÇÑ ±â´É±îÁö ¸ðÁ¶¸® »ó¼Ó¹Þ¾Æ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
Ŭ·¡½ºÀÇ µ¢Ä¡°¡ Ŭ°æ¿ì¿¡ ÀÌ°ÍÀº °æ¿ì¿¡ µû¶ó »ó´çÇÑ ÀÚ¿ø³¶ºñ°¡ µÉ ¼öµµ ÀÖ´Ù.

TClassA = class
 ÇÊ¿äÇÑ ±â´É1;
 ÇÊ¿äÇÑ ±â´É2;
 ºÒÇÊ¿äÇÑ ±â´É;
end;

TClassB = class(TClassA)
 ÇÊ¿äÇÑ ±â´É1;
 ÇÊ¿äÇÑ ±â´É2;
 ºÒÇÊ¿äÇÑ ±â´É;
 ....
end;

ÀÌ °æ¿ì Ŭ·¡½º»ó¼Ó¿¡¼­ ºÒÇÊ¿äÇÑ ±â´ÉÀ» ¾ø¾Ö·Á¸é ºÒÇÊ¿äÇÑ ±â´ÉÀ» override ÇÏ´Â ¼ö ¹Û¿¡ ¾ø´Ù.
ÇÏÁö¸¸ ÀÌ·± °úÁ¤Àº »ó¼Ó¹Þ¾Æ°¡´Â ÇÏÀ§ Ŭ·¡½ºÀÇ Á¾·ù°¡ ¸¹À» °æ¿ì °ü¸®°¡ ¹«Ã´ Èûµé¾îÁö°Ô µÈ´Ù.

±×·³, override ¾ÈÇÏ°í ºÒÇÊ¿äÇÑ ±â´ÉÀ» Á¦°Å ÇÒ ¼ö ¾øÀ»±î?
¿ª¹ß»óÇÏ¿© ÇÊ¿äÇÑ ±â´É¸¸ °¡Á®´Ù ¾µ ¼ö ÀÖ´Â ¹æ¹ýÀ» ãÀ¸¸é µÉ °ÍÀÌ´Ù.

±×·¸°Ô ÇÒ·Á¸é ¾Æ·¡ °°Àº ÇüÅÂÀÇ ´ÙÁß»ó¼Ó ±¸Á¶°¡ ¼º¸³µÇ¾î¾ß ÇÑ´Ù.

TClassB = class(ÇÊ¿äÇÑ ±â´É1À» °¡Áø Ŭ·¡½º, ÇÊ¿äÇÑ ±â´É2¸¦ °¡Áø Ŭ·¡½º)
  ÇÊ¿äÇÑ ±â´É1;
  ÇÊ¿äÇÑ ±â´É2;
end;

ÇÏÁö¸¸, ¾Ö¼®ÇÏ°Ôµµ ¿ì¸®ÀÇ µ¨ÆÄÀÌ´Â ´ÙÁß»ó¼ÓÀÌ Áö¿øµÇÁö ¾Ê±â ¶§¹®¿¡ À§ ÇüÅ·δÂ
Ŭ·¡½º¸¦ ¼³°èÇÒ ¼ö ¾ø´Ù.

ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é Interface ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
Interface ÀÚü ¼³¸í¸¸µµ ³»¿ëÀÌ ¹æ´ëÇϱ⠶§¹®¿¡ µû·Î ¼³¸íÇÏÁö´Â ¾Ê°Ú´Ù.

TClassB = class( ÇÊ¿äÇÑ ±â´É1À» °¡Áø Interface, ÇÊ¿äÇÑ ±â´É2¸¦ °¡Áø Interface )
  ÇÊ¿äÇÑ ±â´É1;
  ÇÊ¿äÇÑ ±â´É2;
end;

ÇÊ¿äÇÑ ±â´É1°ú 2´Â InterfaceÀÇ ¸Þ¼ÒµåÀÌ´Ù.
À§ °°Àº ÇüÅ·ΠÇؼ­ ÀÎÅÍÆäÀ̽º·Î ºÎÅÍ ²À ÇÊ¿äÇÑ ±â´Éµé¸¸ »ó¼Ó¹Þ¾Æ ¾µ ¼ö ÀÖ´Ù.

ÀÌ ºÎºÐ¿¡¼­ ¾Æ±îÀü ºñÀ¯¸¦ µç ÀÚµ¿Â÷ ¿É¼ÇºÎÇ° ¾ê±â¸¦ ÀÌÇØÇÒ ¼ö ÀÖÀ¸¸®¶ó º»´Ù.

ÀÌ·¸°Ô µÇ¸é Á¦Á¶¿¡ ²À ÇÊ¿äÇÑ ºÎÇ°¸¸ ¿·¿¡ µÎ°í Á¶¸³ÇÑ´Ù°í ÇÒ ¼ö ÀÖ´Ù.

½ÇÁúÀûÀÎ »ç¿ë ¿¹·Î ¸¸µé¸é ´ÙÀ½°ú °°´Ù.

TClassB = class( TInterfacedObejct, ISpeak, IWork )
  Speak; //ÇÊ¿äÇÑ ±â´É1 - ISpeak ÀÇ ¸Þ¼Òµå;
  Work;  //ÇÊ¿äÇÑ ±â´É2 - IWork ÀÇ ¸Þ¼Òµå;
end;

Interface °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇØ TInterfacedObject Ŭ·¡½º¸¦ »ó¼Ó¹Þ°í

ISpeak¿Í IWork Interface ¸¦ ´ÙÁß »ó¼Ó¹Þ¾Ò´Ù.

Speak ±â´ÉÀº °æ¿ì¿¡ µû¶ó µ¿ÀûÀ¸·Î ±â´ÉÀÌ º¯°æ µÉ ¼ö ÀÖµµ·Ï ¸¸µé¾î¾ß Strategy ÆÐÅÏÀ» Á¦´ë·Î

±¸ÇöÇß´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù.

´Ù½Ã¸»ÇØ, »ç¿ëÀÚ°¡ Speak ¸¦ È£ÃâÇÏ´õ¶óµµ ¾î¶² °æ¿ì´Â Çѱ¹¸»À» ÇØ¾ß ÇÒ¶§µµ ÀÖ°í °æ¿ì¿¡ µû¶ó¼­´Â

¿µ¾î¸¦ ¸»ÇØ¾ß ÇÒ¶§µµ ÀÖ´Ù´Â ¸»ÀÌ´Ù.

Çѱ¹¾î·Î ¸»Çϱâ¿Í ¿µ¾î·Î ¸»Çϱ⠱â´É±¸Çö Äڵ尡 ª´Ù¸é ¸ð¸£°ÚÁö¸¸ Äڵ尡 ¾öû³ª°Ô ±æ´Ù°í °¡Á¤ÇØ º»´Ù¸é

¿ÜºÎ ÀÎÅÍÆäÀ̽º ¸Þ¼Òµå ±Ô°Ý Speak ¸¦ ÁöÅ°¸é¼­, ³»ºÎ±â´ÉÀº »ç¿ëÀÚÀÇ ¿ä±¸»çÇ׿¡ µû¶ó µ¿ÀûÀ¸·Î ´Ù¸¥

¸Þ¼­µå¿¡¼­ ÀÛµ¿µÉ ¼ö ÀÖµµ·Ï ÇÏ´Â ¹æ¹ýÀ» ã¾Æ¾ß ÇÑ´Ù.

ÀÌ¿¡ ´ëÇÑ ¼Ö·ç¼ÇÀº ´ÙÀ½°ú °°ÀÌ Ãß»óÈ­ ÆÐÅÏÀ» µµÀÔÇÏ´Â °ÍÀÌ´Ù.

ISpeak = interface
 speak;
end;

TSpeakKorean = (TInterfacedObject, ISpeak)
 speak;
end;

TSpeakEnglish = (TInterfacedObject, ISpeak)
 speak;
end;

* TSpeakKorean°ú TSpeakEnglish ´Â ISpeak ¸¦ »ó¼Ó¹Þ¾Ò±â ¶§¹®¿¡ »óÈ£±³È¯ÀÌ °¡´ÉÇÏ´Ù.

ÀÌ·± Ãß»óÈ­ ±â¹ýÀº Ŭ·¡½º¿¡¼­µµ °¡´ÉÇÏÁö¸¸, ´ÙÁß»ó¼ÓÀ» À§ÇØ ÀÎÅÍÆäÀ̽º¸¦ ¾´ ÀÌ»ó À§Ã³·³ ÀÎÅÍÆäÀ̽º·Î ÇØ°áÇØ¾ß ÇÑ´Ù.


Áö±Ý±îÁöÀÇ ¼³¸íÀ¸·Î ¿ì¸®´Â µÎ¸¶¸® Åä³¢¸¦ Àâ¾Ò´Ù.

ù°, ´ÙÁß»ó¼ÓÀ» ÅëÇÑ ¸ðµâÀ» ²È¾Æ ¾²´Â ¹æ½ÄÀ» äÅÃÇÔÀ¸·Î Ŭ·¡½º È®À强 È®º¸
µÑÀç, ÀÎÅÍÆäÀ̽º ¸Þ¼­µåÀÇ Ãß»óÈ­¸¦ ÅëÇÑ ¸Þ¼­µåÀÇ µ¿Àû±â´É ¼±Åà À¯¿¬¼º È®º¸

¸¶Áö¸·À¸·Î ²À ÇÊ¿äÇÑ°Ô Àִµ¥, ±×°ÍÀº ¹Ù·Î ¿Ï¼ºµÈ ¸ðµâÀ» ¾î¶»°Ô ²È¾Æ ¾²´Â°¡ ÇÏ´Â °ÍÀÌ´Ù.

¿ì¸®°¡ Inteface ¶ó´Â ¸»À» µéÀ»¶© Á¤ÀǸ¸ ÇÏ°í ±¸ÇöÇÒ ¼ö ¾ø´Ù¶ó°í ¹è¿ü´Ù.
±×·¡¼­ À§ °°Àº ¹æ¹ýÀ¸·Î ÇÁ·Î±×·¥À» Â¥´õ¶óµµ ±â´É±¸ÇöÀº °á±¹ ÃÖÁ¾ Ŭ·¡½º »ç¿ëÀÚÀÇ ¸òÀÌ ¾Æ´Ñ°¡ ¶ó°í
»ý°¢ ÇÒ ¼ö ÀÖ´Ù.

¸¸ÀÏ À̱ÛÀ» º¸°í °è½Å ´ç½Åµµ °°Àº »ý°¢À̶ó¸é Çϳª ¹°¾îº¸ÀÚ!

DirectX ´Â Interface ¸¦ ÀÌ¿ëÇÑ COM ±â¼ú·Î ¸¸µé¾î Á® ÀÖ´Ù.
Interface ¸¦ 썻À¸´Ï DirectX ¸¦ ´ç½ÅÀÌ ¸ðÁ¶¸® ±¸ÇöÇÏ¿© ½á¾ß Çϴ°¡?

³ª´Â ´äÇÏ°í ½Í´Ù. ±×°É ³»°¡ ´Ù ±¸ÇöÇÒ ÁÙ ¾Ë¸é MS ¿¡ ÃëÁ÷ÇÏÁö ÀÌÀÚ¸®¿¡ Àְڳİí?

¿©±â¼­ ¿ì¸®´Â ²À Çϳª ¾Ë¾Æ¾ß ÇÒ »ç½ÇÀÌ ÀÖ´Ù.

Interface ÀÇ Á¤ÀÇ¾ß ¾îÂî µÇ¾ú°Ç Interface ÀÇ È°¿ëÀº ±×·¸°Ô »ý°¢ÇÏ¸é ¿À»êÀ̶õ °ÍÀÌ´Ù.

Interface ÀÇ ÃÖÁ¾¸ñÀûÀº °³¹ß¾ð¾î¿¡ »ó°ü¾øÀÌ ÀÌ¹Ì ¿Ï¼ºµÈ ±â´ÉÀ» ½±°Ô °¡Á®´Ù ¾²±â À§ÇÔ¿¡ ÀÖ´Â °ÍÀÌÁö,
Á¤ÀǸ¸ ÇÏÀÚ°í ¸¸µé¾î µÐ °³³äÀÌ Àý´ë ¾Æ´Ï´Ù.

Á¤ÀǸ¸ ÇÏÀÚ°í ±×°É ¸¸µé¾úÀ¸¸é »ý»ê¼ºÀÌ ¾ø¾îµµ ³Ê¹« ¾ø°Ô µÈ´Ù.

Çؼ­, ÷ºÎÆÄÀÏ¿¡  Inteface Å¸ÀÔÀÇ °´Ã¼¸¦ Interface ¸¦ °¡Áö°í ¾î¶»°Ô °¡Á®´Ù ¾²´ÂÁö¿¡ ´ëÇÑ

°£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î ¿Ã·Á µÎ¾úÀ¸´Ï ÂüÁ¶ÇÏ¿© º¸±â ¹Ù¶õ´Ù.

º»ÀÎÀÌ ±Û ÀçÁÖ°¡ ºÎÁ·ÇÏ¿© Strategy ÆÐÅÏ¿¡ ´ëÇÑ ºÎÁ·ÇÑ ºÎºÐÀº ÄÚµå·Î ´ë½ÅÇÏ¿´À¸¸é ÇÑ´Ù.

±ä ±Û Àоî Áּż­ °¨»çÇÕ´Ï´Ù.