¸â¹ö ²ø¾î ¿Ã¸®±â ¸®ÆÑÅ丵

 

ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Pull Members Up ¸®ÆÑÅ丵 ±â´É¿¡ ´ëÇØ Æ÷°ýÀûÀΠ overview ¿Í  how ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼­ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.

°³¿ä


Pull Members Up ¸®ÆÑÅ丵 ±â´ÉÀº Ŭ·¡½º ¸â¹ö¸¦ ½´ÆÛŬ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º·Î À̵¿ÇÏ´Â °ÍÀ» Çã¶ôÇØÁÝ´Ï´Ù.


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

 
public class ClassParent {
    void method1(){
        //some code here
    }
}
 
public class ClassChild extends ClassParent {
    void method1() {
        //some code here
    }
    void method2() {
        //some code here
    }
}

 

±×¸®°í ´ç½ÅÀº method2¸¦ ºÎ¸ð Ŭ·¡½º·Î À̵¿ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.  ´ç½ÅÀÇ ÄÚµå´Â ¸®ÆÑÅ丵 ÀÌÈÄ À̰Íó·³ º¸ÀÏ °ÍÀÔ´Ï´Ù:
 
public class ClassParent {
    void method1(){
        //some code here
    }
    void method2() {
        //some code here
    }
}
 
public class ClassChild extends ClassParent {
    void method1() {
        //some code here
    }
}



¸â¹ö¸¦ ²ø¾î¿Ã¸®´Â °Í


Ŭ·¡½º ¸â¹ö¸¦ ²ø¾î¿Ã¸®±â À§Çؼ­:

 1.   ¿¡µðÅÍ ¶Ç´Â Project View  / Commander ¿¡¼­ ´ç½ÅÀÌ ²ø¾î¿Ã¸± Çʿ䰡 ÀÖ´Â ¸â¹ö°¡ ¿Ã¸®´Â Ŭ·¡½º À§ÀÇ Ä³·µÀ» ¼³Á¤ÇÏ°í ¸ÞÀÎ ¸Þ´º ¶Ç´Â ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼­ Refactor Pull Members Up... ¸¦ Ŭ¸¯ÇϽʽÿÀ.

 2.   ´ç½ÅÀº Pull Members Up ´ÙÀ̾ó·Î±×¸¦ º¼ °Í ÀÔ´Ï´Ù

Pull up  members of a <package_name>.<class_name> to: 

µå·Ó-´Ù¿î ¹Ú½º¿¡¼­ ´ç½ÅÀº ¼±ÅÃµÈ Å¬·¡½º ¸â¹ö¸¦ ²ø¾î¿Ã¸®´Â Ŭ·¡½º/ÀÎÅÍÆäÀ̽º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

²ø¾î¿Ã·ÁÁö´Â ¸â¹ö

ÀÌ ÆÐ³ÎÀº °ü·Ã Ŭ·¡½º, ÀÎÅÍÆäÀ̽º, Çʵå¿Í ¸Þ¼Òµå¸¦ Æ÷ÇÔÇÏ´Â °ÍÀ» ²ø¾î¿Ã·ÁÁö´Â ¸ðµç Ŭ·¡½º ¸â¹öÀÇ ¸ñ·ÏÀ» º¸¿©ÁÝ´Ï´Ù.  ¸â¹ö¸¦ ²ø¾î¿Ã¸®±â À§ÇØ, ´ç½ÅÀº ±× ¿ÞÂÊ¿¡¼­ üũ ¹Ú½º¸¦ ¼±ÅÃÇØ¾ß¸¸ ÇÕ´Ï´Ù.  ¸¸ÀÏ ´ç½ÅÀÌ ¸Þ¼ÒµåÀÇ ¿À¸¥ÂÊ¿¡ »óÀÀÇϴ üũ ¹Ú½º¸¦ Ç¥½ÃÇϸé, ²ø¾î ¿Ã·ÁÁö´Â ¸Þ¼Òµå´Â »óÀ§ Ŭ·¡½º/ÀÎÅÍÆäÀ̽º¿¡¼­ Ãß»óÀ¸·Î¼­ ¼±¾ðµÉ ¼ö ÀÖ½À´Ï´Ù.  ±×·¯³ª, ¸¸ÀÏ ´ç½ÅÀÌ ÀÎÅÍÆäÀ̽º¿¡ ¸â¹ö¸¦ ²ø¾î¿Ã¸®¸é ÀÌ Ã¼Å© ¹Ú½º´Â ¼±Åõǰí, ºÒ°¡´ÉÇÏ°Ô ÇÏ°Ô µË´Ï´Ù.

¸¸ÀÏ ¸â¹ö Àü¼ÛÀÌ ¹®Á¦¸¦ ÃÊ·¡ÇÒ ÀáÀç°¡ ÀÖ´Ù¸é, ´ç½ÅÀº Ưº°ÇÑ °­Á¶ Ç¥½Ã Ư¡¿¡ ÀÇÇØ ÅëÁöµÉ °ÍÀÔ´Ï´Ù.  ¸®ÆÑÅ丵ÀÌ Àû¿ëµÇÁö¸¸ ÀáÀçÀûÀ¸·Î ¾î¶² ¿¡·¯·Î ³¡³¯Áöµµ ¸ð¸¦ ¶§, ¸â¹ö´Â ÆÄ¶õ ¡°°æ°í¡± ¸¶Å©·Î °­Á¶µÉ °Í ÀÔ´Ï´Ù. »¡°£ Ç¥½Ã°¡ ÀÖ´Â ¸â¹ö °­Á¶ Ç¥½Ã´Â ¸¸ÀÏ »óȲÀÌ ¹æÄ¡µÇ¸é, ¸®ÆÑÅ丵ÀÌ Àû¿ëµÇ°í ³­ ÈÄ¿¡ ¿¡·¯°¡ ¸íÈ®È÷ ³ªÅ¸³¯ °ÍÀÏ °ÍÀ» Áö½ÃÇÕ´Ï´Ù.  ¸¸ÀÏ ´ç½ÅÀÌ ¸®ÆÑÅ丵 ÇÁ·Î¼¼½º¸¦ °è¼ÓÇϱâ·Î ¼±ÅÃÇÏ¸é ´ç½Å¿¡°Ô Problems Detected ´ÙÀ̾ó·Î±×°¡ ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù.



¸®ÆÑÅ丵(±×·¯³ª °á°ú ÄÚµå´Â ÄÄÆÄÀÏ µÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù)À» Àû¿ëÇϱâ À§ÇØ Continue ¸¦ ´©¸¨´Ï´Ù.  ¶Ç´Â ÇÊ¿äÇÑ Á¤Á¤À» Çϱâ À§Çؼ­ Pull Members Up  ´ÙÀ̾ó·Î±×·Î µ¹¾Æ°¡±â À§Çؼ­ Cancel  À» ´©¸¨´Ï´Ù

°­Á¶µÈ ¸â¹ö À§¿¡¼­ ÀáÀçÀûÀÎ ¹®Á¦ÀÇ ¿øÀÎÀ» º¸±â À§ÇØ, ±×°Í À§¿¡¼­ ¸¶¿ì½º Æ÷ÀÎÅ͸¦ Áö¿¬½ÃŰ½Ê½Ã¿À.  ¹®Á¦ ¼³¸íÀÌ ÀÖ´Â ÆË¾÷ ¸Þ½ÃÁö°¡ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù.

Javadoc for abstracts  

´ç½ÅÀÌ »óÀÀÇÏ´Â Javadoc ÄÚ¸àÆ®¸¦ °¡Áö´Â Ãß»ó ¸Þ¼Òµå¸¦ ²ø¾î¿Ã¸± ¶§ ´ç½ÅÀº ¾Æ¸¶µµ ±×°ÍµéÀ» ´Ù·ç±â¸¦ ¿øÇÏ´Â ±× ¹æ¹ýÀ» ¼±ÅÃÇÒ °Í ÀÔ´Ï´Ù.

´ç½ÅÀº As is¸¦ ¼±ÅÃÇÏ´Â ¿øÇüÀÇ Å¬·¡½º¿¡¼­ ±×°ÍµéÀ» ³öµÑ ¼ö ÀÖ½À´Ï´Ù, ¶Ç´Â ±×°ÍµéÀ» Copy¸¦ ¼±ÅÃÇÏ´Â »óÀ§ Ŭ·¡½º/ÀÎÅÍÆäÀ̽º·Î ±×°ÍµéÀ» º¹»çÇϰųª ¶Ç´Â Move À» ¼±ÅÃÇÑ °Å±â¿¡¼­ ±×°ÍµéÀ» À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.


´ç½ÅÀÌ ¸ðµç ¸â¹ö¸¦ ²ø¾î¿Ã·ÁÁöµµ·Ï ¼±ÅÃÇÑ ÈÄ¿¡, ±×·¯¸é ¾î¶² ¹®Á¦µµ ¹ß°ßÇÏÁö ¾Ê¾Ò½À´Ï´Ù, ¸®ÆÑÅ丵À» Àû¿ëÇϱâ À§ÇØ OK¸¦ Ŭ¸¯ÇϽʽÿÀ.

Ưº°ÇÑ ÁÖ¼®

 

´ç½ÅÀÌ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­µÈ Çʵ带 ²ø¾î¿Ã¸± Çʿ䰡 ÀÖÀ» ¶§ »óȲ¿¡ Ưº°ÇÑ ÁÖÀǸ¦ ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ´ç½ÅÀº ´ÙÀ½ÀÇ Äڵ带 °¡Áý´Ï´Ù:   
 
public class ClassParent {
    public ClassParent(int a) {
        //some code here
    }
}
 
public class ClassChild extends ClassParent  {
    HashMap myMap;
 
    public ClassChild() {
      super(27);
      myMap = new HashMap();
    }
}
 
ÀÌ »óȲ¿¡¼­, ¸®ÆÑÅ丵ÀÌ Àû¿ëµÉ ¶§, Çʵå´Â ±× ÃʱâÈ­¿Í ÇÔ²² ²ø¾î¿Ã·ÁÁú °ÍÀÔ´Ï´Ù. ±×¸®°í °á°úÀûÀÎ ÄÚµå´Â ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù:  
 
public class ClassParent {
    HashMap myMap;
 
    public ClassParent(int a) {
        myMap = new HashMap();
        //some code here
    }
}
 
public class ClassChild extends ClassParent  {
 
    public ClassChild() {
      super(27);
    }
}

 

±×·¯³ª Çʵå ÃʱâÈ­´Â ´ÙÀ½ÀÇ °æ¿ì¿¡¼­ as is·Î ³²¾Æ ÀÖÀ» °ÍÀÔ´Ï´Ù:

 1.   ¸¸ÀÏ Çʵå ÃʱâÈ­°¡ ´Ù¸¥ »ý¼ºÀÚ¿¡¼­¿Í °°Áö ¾Ê´Ù¸é.
 2.   ¸¸ÀÏ Çʵå ÃʱâÈ­°¡ »ý¼ºÀÚ ¸Å°³ º¯¼ö¿¡ ÀÇÁ¸Çϸé.

¿¹¸¦ µé¸é, ´ÙÀ½ ÄÚµå(ÀÌÀüÀÇ ¿¹¸¦ º¯°æÇϸ鼭)¿¡¼­ Çʵå ÃʱâÈ­°¡ myMap Çʵå¿Í ÇÔ²² ²ø¾î¿Ã·ÁÁöÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

 
public class ClassChild extends ClassParent  {
    HashMap myMap;
 
    public ClassChild() {
      super(27);
      myMap = new HashMap();
    }
 
    public ClassChild(int capacity) {
      super(27);
      myMap = new HashMap(capacity);
    }
}