Replace Method Code Duplicates Refactoring  

 

Replace Method Code Duplicates ¸®ÆÑÅ丵Àº ´ç½Å¿¡°Ô ¼±ÅÃµÈ ¸Þ¼Òµå ÄÚµå ¹Ýº¹ÀÇ À§Ä¡¸¦ °áÁ¤Çϰí, ±×µéÀ» ¸Þ¼Òµå ÄÝ·Î ¹Ù²Ù´Â

°ÍÀ» Çã¶ôÇÕ´Ï´Ù.  ÀÌ ¸®ÆÑÅ丵 À§¿¡¼­ »ó¼¼ÇÑ °ÍÀº Overview ¸¦ ÂüÁ¶ÇϽʽÿÀ. ±×·¸Áö ¾ÊÀ¸¸é  how to replace method code duplicatesÀ» ±â¼úÇÑ ¼½¼ÇÀ¸·Î Á÷Á¢ °¡½Ê½Ã¿À.

°³¿ä


Replace Method Code Duplicates ¸®ÆÑÅ丵ÀÌ È£ÃâµÉ ¶§, IDEA´Â ¼±ÅÃµÈ ¸Þ¼Òµå Äڵ带 ºÐ¼®Çϰí, ÀÌ ¸Þ¼Òµå¿¡ Äݰú ÇÔ²² ġȯµÉ ¼ö

ÀÖ´Â ÄÚµåÀÇ ºí·ÏÀ» ¹ß°ßÇÕ´Ï´Ù.

¿¹¸¦ µé¸é, ´ç½ÅÀº Äڵ带 °¡Áý´Ï´Ù:  

 
    public void originalMethod(int intParam, String stringParam){
        BigField.greatMethod(intParam, stringParam);
    }
 
    public void duplicatedMethod(){
        //method code
        BigField.greatMethod(10, "abc");
        //method code
    }

 

originalMethod ¿¡¼­ ¸®ÆÑÅ丵À» ½ÃÀÛÇÏ¸é ´ç½Å¿¡°Ô originalMethod¿¡ ÄÝÀ» À§ÇØ duplicatedMethod ³»¿¡¼­ Äڵ带 ±³Ã¼ÇÒ °ÍÀ»
Á¦¾ÈÇÒ °ÍÀÔ´Ï´Ù.  ³¡À¸·Î, ÄÚµå´Â ±×·¸°Ô º¸ÀÏ °ÍÀÔ´Ï´Ù: 
 
    public void originalMethod(int intParam, String stringParam){
        BigField.greatMethod(intParam, stringParam);
    }
 
    public void duplicatedMethod(){
        //method code
        originalMethod(10, "abc");
        //method code
    }



¸Þ¼Òµå ÄÚµå Áߺ¹À» ±³Ã¼ÇÏ´Â ¹æ¹ý


¸Þ¼Òµå ÄÚµå Áߺ¹À» ¹ß°ßÇϰí, ±³Ã¼Çϱâ À§ÇÏ¿©:

 1.   ´ç½ÅÀÌ ÄÚµå Áߺ¹¿¡ ´ëÇØ Ž»öÇϱ⠿øÇÏ´Â ¸Þ¼ÒµåÀÇ º¸µð ³»¿¡¼­ ij·µÀ» ¿¡µðÅÍ¿¡¼­ ¼³Á¤ÇϽʽÿÀ.  ±×¸®°í ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º·ÎºÎÅÍ ¶Ç´Â ¸ÞÀÎ ¸Þ´º·ÎºÎÅÍ ¾î´À ÂÊÀÌ¶óµµ  Refactor Replace Method Code Duplicates... Ŭ¸¯ÇϽʽÿÀ.


 2.   ±× ÈÄ¿¡, ´ÙÀ½ÀÇ À©µµ¿ì´Â ¾ó¸¶³ª ¸¹Àº ¸ÅĪ ÄÚµå ÇÁ·¡±×¸ÕÆ®°¡ ¹ß°ßµÇ¾ú´Â°¡¸¦ º¸¿©Áָ鼭 ³ªÅ¸³¯ °Í ÀÔ´Ï´Ù:



 3.   ¸¸ÀÏ ´ç½ÅÀÌ Replace¸¦ ´©¸£¸é IDEA´Â ´ç½Å¿¡°Ô ´ÙÀ½ ´ÙÀ̾ó·Î±×¿Í ÇÔ²² ±³Ã¼¸¦ À§ÇØ ÇÁ·ÒÇÁÆÃÇÏ¸ç ¿¡µðÅÍ¿¡¼­ ±×°ÍÀ» °­Á¶Çϰí ÀÖ´Â ÄÚµåÀÇ °¢°¢ ¹ß°ßµÈ Á¶°¢À» ±³Ã¼ÇÒ °ÍÀ» Á¦¾ÈÇÒ °ÍÀÔ´Ï´Ù.



´ç½ÅÀº Yes¸¦ ´­·¯ °­Á¶µÈ Äڵ带 ±³Ã¼ÇÒ ¼ö Àְųª No¸¦ ´­·¯ ±×°ÍÀ» ½ºÅµÇÒ ¼ö ÀÖ½À´Ï´Ù.

4.      ´ç½ÅÀÌ ÇÁ·Î¼¼½º Çϱ⸦ ¼±ÅÃÇÑ ÄÚµåÀÇ ¸ðµç Á¶°¢Àº ¼±ÅÃµÈ ¸Þ¼Òµå¿¡¼­ Äݰú ´õºÒ¾î ±³Ã¼ÇÕ´Ï´Ù.