¡ÜObjectBuilderÀÇ ¾ÆÅ°ÅØÃÄ
¡¡ObjectBuilder´Â °´Ã¼ÀÇ »ý¼º°ú ÆÄ±âÀÇ ½ÇÇàÀ» °ü¸®Çϴ¡¸strategy¡¹, º¹¼öÀÇ strategy¸¦ º¸°ü À¯ÁöÇϴ¡¸½ºÅ×ÀÌÁö¡¹, ±×¸®°í °´Ã¼ÀÇ »ý¼º¿¡ °üÇÑ Á¤º¸¸¦ º¸°ü À¯ÁöÇϴ¡¸Æú¸®½Ã¡¹¶ó´Â 3°³ÀÇ ¿ä¼Ò·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
¡¡±×¸®°í PreCreation, Creation, Initialization, PostInitializationÀ̶ó´Â 4Á¾·ùÀÇ ½ºÅ×ÀÌÁö¿¡¼ ÆÄÀÌÇÁ¶óÀÎ*2À» Çü¼ºÇϰí, °¢ ½ºÅ×ÀÌÁö¿¡ µî·ÏµÇ¾î ÀÖ´Â strategy¸¦ Â÷·Ê·Î ½ÇÇàÇÏ¿© °´Ã¼ÀÇ »ý¼ºÀ» ½Ç½ÃÇØ Æú¸®½Ã´Â °¢ strategy¿¡ÀÇ ÀÔÃâ·Â Á¤º¸·Î¼ÀÇ ¿ªÇÒÀ» ´ã´çÇÑ´Ù.
| *2 ÆÄÀÌÇÁ¶óÀÎÀ̶õ, ¾î´À 󸮸¦ ¼øÂ÷ÀûÀÎ º¹¼öÀÇ Ã³¸® ½ºÅÜÀ¸·Î ºÐÇÒÇÏ°í ¸ðµç ½ºÅÜÀÇ Ãâ·Â µ¥ÀÌÅ͸¦ ÀԷ°ªÀ¸·Î¼ ´ÙÀ½ ½ºÅÜÀ» ¼ø¼´ë·Î ó¸®ÇØ ³ª°¡´Â Ç÷ο츦 ÀǹÌÇÑ´Ù. |
¡¡
 |
| ObjectBuilder°¡ ±¸ÇöÇÏ´Â µðÆúÆ®ÀÇ ÆÄÀÌÇÁ¶óÀÎ ¸ðµ¨ |
½ºÅ×ÀÌÁö´Â °´Ã¼ÀÇ »ý¼º ´Ü°è¸¶´Ù 4Á¾·ù°¡ Á¸ÀçÇÑ´Ù. ¡¡ ¡¤PreCreation£º°´Ã¼¸¦ »ý¼ºÇÏ´Â Àü´Ü°è. ¡¡ ¡¤Creation£º°´Ã¼ÀÇ »ý¼º ´Ü°è. ¡¡ ¡¤Initialization£º»ý¼ºµÈ °´Ã¼ÀÇ ÃʱâÈ ´Ü°è. ¡¡ ¡¤PostInitialization£º»ý¼ºµÈ °´Ã¼¸¦ µ¹·ÁÁÖ´Â ´Ü°è. |
¡¡À̰ÍÀº ObjectBuilder°¡ µðÆúÆ®·Î ±¸ÇöÇϰí ÀÖ´Â ÆÄÀÌÇÁ¶óÀÎ ¸ðµ¨À̸ç, PreCreation ½ºÅ×ÀÌÁöÀÇ TypeMappingStrategy¿¡¼ ¸¶Áö¸· PostInitialization ½ºÅ×ÀÌÁöÀÇ BuilderAwareStrategy±îÁö Â÷·Ê·Î ½ÇÇà½ÃÄѼ ÃÖÁ¾ÀûÀ¸·Î °´Ã¼°¡ »ý¼ºµÇ°Ô µÈ´Ù.
¡¡´ÙÀ½ÀÇ Ç¥´Â µðÆúÆ®¿¡ ÁغñµÈ strategyÀÇ À϶÷ÀÌ´Ù.
|
Ŭ·¡½º¸í |
µ¿ÀÛ |
ÀÔ·Â |
Ãâ·Â |
| PreCreation |
TypeMapping Strategy |
ÀÓÀÇÀÇ ÀÎÅÍÆäÀ̽º³ª Ãß»ó Ŭ·¡½º¿¡¼ ±×°ÍµéÀ» °è½ÂÇÏ´Â ÀÓÀÇÀÇ ÇüÅ·Πº¯È¯ ÇÑ´Ù |
IType Mapping Policy |
|
| Singleton Strategy |
ÁöÁ¤µÈ ÇüÅÂÀÇ °´Ã¼°¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â °æ¿ì¿£ ±×°ÍÀ» µ¹·ÁÁÖ°í, Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì¿£ »õ·Ó°Ô »ý¼ºÇÑ´Ù |
Locator |
|
| Constructor Reflection Strategy |
InjectionConstructorAttribute°¡ ºÙÀº constructor¸¦ ã°í, ConstructorPolicy(ICreationPolicy¸¦ °è½Â)¸¦ ÀÛ¼ºÇÑ´Ù |
¸®Ç÷º¼Ç |
ICreation Policy |
| Property Reflection Strategy |
ParameterAttribute°¡ ºÙÀº ÇÁ·ÎÆÛƼ¸¦ ã°í PropertySetterPolicy¸¦ ÀÛ¼ºÇÑ´Ù |
¸®Ç÷º¼Ç |
IProperty Setter Policy |
| Method Reflection Strategy |
InjectionMethodAttribute°¡ ºÙÀº ¸Þ¼Òµå¸¦ ã°í MethodPolicy¸¦ ÀÛ¼ºÇÑ´Ù |
¸®Ç÷º¼Ç |
IMethod Policy |
| Creation |
Creation Strategy |
constructor ¶Ç´Â Activator Ŭ·¡½º¸¦ »ç¿ëÇØ °´Ã¼¸¦ »ý¼ºÇÑ´Ù. ISingletonPolicy°¡ ÀÖ´Ù¸é Locator¿¡ µî·ÏÇÑ´Ù |
ICreation Policy ISingleton Policy |
Locator |
| Initialization |
Property Setter Strategy |
IPropertySetterPolicy¸¦ ±âº»À¸·Î ÇÁ·ÎÆÛƼ¿¡ °ªÀ» ¼³Á¤ÇÑ´Ù |
IProperty Setter Policy |
|
| Method Execution Strategy |
IMethodPolicy¸¦ ±âº»À¸·Î ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù |
IMethod Policy |
|
| Post Initialization |
Builder Aware Strategy |
°´Ã¼ »ý¼ºÀÇ ¿Ï·á¸¦ ÅëÁöÇÑ´Ù |
|
|
|
| µðÆúÆ®·Î ÁغñµÇ¾î ÀÖ´Â strategy À϶÷ |
¡¡Áö±Ý±îÁö ÇØ¼³ÇÑ °´Ã¼ »ý¼º ÆÄÀÌÇÁ¶óÀÎÀ» ±×¸²À¸·Î ³ªÅ¸³»¸é ÀÌÇÏ¿Í °°ÀÌ µÈ´Ù.
 |
| °´Ã¼ »ý¼º ÆÄÀÌÇÁ¶óÀÎÀÇ °³³äµµ |
¡¡À̰ÍÀº ¾îµð±îÁö³ª ObjectBuilder°¡ µðÆúÆ®·Î ÁغñÇÑ ÆÄÀÌÇÁ¶óÀο¡ Áö³ªÁö ¾ÊÀ¸¸ç, ½ÇÁ¦·Î ObjectBuilder¸¦ ÀÌ¿ëÇØ üÁ¦³ª Ŭ·¡½º ¶óÀ̺귯¸®¸¦ °³¹ßÇÏ´Â °æ¿ì¿£ ¿ëµµ¿¡ ¸Â´Â strategy¸¦ µ¶ÀÚÀûÀ¸·Î ÁغñÇÏ¿© ObjectBuilder°¡ Á¦°øÇÏ´Â ¸î°³ÀÇ ½ºÅ×ÀÌÁö¿¡ Ãß°¡Çؼ ÃÖÀûÀÇ ÆÄÀÌÇÁ¶óÀÎÀ» ±¸ÃàÇÒ Çʿ䰡 ÀÖ´Ù.
¡¡»ç½Ç, EntLib 2.0¿¡¼´Â °¢ Application BlockÀÇ ¿ëµµ¿¡ µû¶ó µ¶ÀÚÀûÀÎ strategy¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. ¿¹¸¦ µé¸é CompUIAB¿¡¼µµ µðÆúÆ®ÀÇ ÆÄÀÌÇÁ¶óÀÎÀ» º¯°æÇÏ´Â ÇÑÆí, EventBrokerStrategy³ª ControlSmartPartStrategy µîÀÇ µ¶ÀÚÀûÀÎ strategy¸¦ Ãß°¡ÇÏ¿© CompUIAB¿¡ ÃÖÀûÈµÈ ÆÄÀÌÇÁ¶óÀÎÀ» ±¸ÃàÇϰí ÀÖ´Ù. ±¸Ã¼ÀûÀ¸·Î´Â ÀÌÇÏ¿Í °°Àº ÆÄÀÌÇÁ¶óÀÎÀÌ´Ù.
 |
| CompUIAB°¡ µ¶ÀÚÀûÀ¸·Î Á¤ÀÇÇϰí ÀÖ´Â ÆÄÀÌÇÁ¶óÀÎ ¸ðµ¨¿¹ |
| CompUIAB´Â µ¶ÀÚÀûÀ¸·Î Á¤ÀÇÇÑ strategy(ÇÎÅ©»öÀÇ »ç°¢)¸¦ Initialization ½ºÅ×ÀÌÁö¿¡ µî·ÏÇϰí ÀÖ´Ù. |