ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô 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);
}
}
|