ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Replace
Constructor With Factory Method ¸®ÆÑÅ丵 ±â´É¿¡ ´ëÇØ Æ÷°ýÀûÀÎ overview¿Í how
ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.
Replace Constructor With Factory Method ¸®ÆÑÅ丵 ±â´ÉÀº ´ç½ÅÀÌ ÄÝÀ» ±× Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ´Â Á¤ÀûÀÎ ¸Þ¼Òµå·ÎÀÇ ÄÝ À§ÀÇ »ý¼ºÀÚ·Î ±³Ã¼ÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù.
¿¹¸¦ µé¸é, ´ç½ÅÀº ´ÙÀ½ÀÇ µÎ Ŭ·¡½º¸¦ °¡Áý´Ï´Ù:
public class Connection {
public Connection(String URL){
//some code here
}
}
public class ConnectionPool {
public Connection getConnection(String name){
Connection conn = new Connection(name);
}
//some code here
}
¸®ÆÑÅ丵 ÈÄÀÇ ÄÚµå´Â ÀÌ·¸°Ô º¸ÀÏ °ÍÀÔ´Ï´Ù:
private class Connection {
private Connection(String URL){
//some code here
}
public static Connection createConnection(String URL) {
return new Connection(URL);
}
}
public class ConnectionPool {
public Connection getConnection(String name){
Connection conn = Connection.createConnection(name);
}
//some code here
}
»ý¼ºÀÚ ÄÝÀº Á¤ÀûÀÎ ¸Þ¼Òµå ÄÝ·Î ±³Ã¼µË´Ï´Ù.
»ý¼ºÀÚ¸¦ ÆÑÅ丮 ¸Þ¼Òµå·Î ±³Ã¼
|
»ý¼ºÀÚ¸¦ ÆÑÅ丮 ¸Þ¼Òµå·Î ±³Ã¼Çϱâ À§Çؼ:
1. ´ç½ÅÀº ÀνºÅϽº°¡ ÀÚÁÖ »ý¼ºµÇ´Â Ŭ·¡½º¸¦ °¡Áú Çʿ䰡 ÀÖ½À´Ï´Ù.
2. ij·µÀ» ÆÑÅ丮 ¸ðµå·Î ±³Ã¼µÉ »ý¼ºÀÚ À§¿¡¼ ¼³Á¤ÇÏ°í ¸ÞÀÎ ¸Þ´º¿¡¼ ¶Ç´Â ¿¡µðÅÍ¿¡¼ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼ Refactor |
Replace Constructor With Factory Method...¸¦ Ŭ¸¯ÇϽʽÿÀ
3. ´ç½ÅÀº Replace Constructor With Factory Method ´ÙÀ̾ó·Î±×¸¦ º¸°Ô µÉ °ÍÀÔ´Ï´Ù.

À̸§
|
ÆÑÅ丮 ¸Þ¼Òµå¿¡ ´ëÇØ IDEA¿¡ ÀÇÇØ Á¦¾ÈµÈ Çϳª¸¦ ¼±ÅÃÇϰųª ´ç½Å ÀÚ½ÅÀÇ À̸§À» ÀÔ·ÂÇϽʽÿÀ.
|
In (fully qualified
name)
|
ÆÑÅ丮 ¸Þ¼Òµå°¡ À§Ä¡µÇ´Â ÃæºÐÈ÷ ÀÚ°ÝÀÌ ÁÖ¾îÁø Ŭ·¡½º À̸§À» ÀÔ·ÂÇϽʽÿÀ.
¶Ç ´Ù¸¥ ¹æ¹ýÀº ÇÊ¿äÇÑ Å¬·¡½º¸¦ ellipsis ¹öưÀ» ´·¯¼ ºÒ·ÁÁö´Â Choose Destination Class ´ÙÀ̾ó·Î±×¿¡¼ ã´Â °Í ÀÔ´Ï´Ù.
|
º¯°æµÈ ¹Ì¸® º¸±â »ç¿ë
|
üũ ¹Ú½º¸¦ ¼±ÅÃÇÏ¸é ´ç½Å¿¡°Ô ¾î¶² »ç¿ëÀÌ ¹ß°ßµÇ¾ú´ÂÁö °è¼Ó ±â¾ïÇϰí ÀÖ°í, ±×µéÀÇ ±³Ã¼¸¦ ½ÂÀÎÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù. ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅõÇÁö ¾ÊÀ» ¶§, IDEA´Â ±³Ã¼¸¦ ÀÚµ¿ÀûÀ¸·Î ¼öÇàÇÕ´Ï´Ù.

|
½ÉÁö¾î üũ ¹Ú½º°¡ È®ÀεÇÁö ¾Ê¾ÒÀ» ¶§µµ, ¸¸ÀÏ ¹ß°ßµÈ »ç¿ëÀÌ ¾î¶² Àбâ Àü¿ë ÆÄÀÏ¿¡¼ Á¸ÀçÇÏ¸é ´ç½Å¿¡°Ô »ç¿ë ±³Ã¼¸¦ È®ÀÎÇϱâ À§ÇØ ÇÁ·ÒÇÁÆ® µÉ °Í ÀÔ´Ï´Ù.
|
Refactoring Preview ´ÙÀ̾ó·Î±×¿¡¼ (¸¸ÀÏ ±×°ÍÀÌ ³ªÅ¸³ª¸é) ´ç½ÅÀº ¼öÇàµÈ º¯°æÀ» ºÐ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÆÑÅ丵°ú ÇÔ²² ÁøÇàÇϱâ À§Çؼ, Do
Refactor¸¦ Ŭ¸¯ÇÕ´Ï´Ù, ±×·¸Áö ¾Ê´Ù¸é Cancel À» Ŭ¸¯ÇÕ´Ï´Ù. »ó¼¼ÇÑ °ÍÀ» º¸·Á¸é Refactoring
Preview¸¦ º¸½Ê½Ã¿À.
|
|
¸®ÆÑÅ丵À» Àû¿ëÇÏ¸é¼ ´ç½ÅÀº ´ÙÀ½À» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù:
1. »õ·Î¿î ÆÑÅ丮 ¸Þ¼Òµå´Â »ý¼ºÀÚÀÇ °Í°ú ¶È°°Àº °¡½Ã¼ºÀ» ¾ò½À´Ï´Ù.
2. »ý¼ºÀÚ´Â ÆÑÅ丮 ¸Þ¼Òµå(¿¹¸¦ µé¸é, private ¸¸ÀÏ ¾çÂÊÀÌ ÇÑ Å¬·¡½º ³»¿¡ À§Ä¡ÇÑ´Ù¸é)¿¡ ÀÇÇØ ¾×¼¼½º °¡´ÉÇÑ ÃÖ¼ÒÀÇ °¡½Ã¼ºÀÌ ÁÖ¾îÁý´Ï´Ù.
3. ÀϺΠƯº°ÇÑ À̽´´Â ³»ºÎ Ŭ·¡½º¿Í °ü°è°¡ ÀÖ½À´Ï´Ù. ÆÑÅ丮 ¸Þ¼Òµå´Â ¿ÜºÎ Ŭ·¡½º ÁßÀÇ ÇÑ °³¿¡¼¸¸ »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
|