ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩av在线一区二区,91大神在线网站,成人自拍视频 http://www.aygfsteel.com/hulizhong/category/42850.html----Java's Slave----<br>
***Java's Host*** zh-cn Wed, 25 Nov 2009 03:12:09 GMT Wed, 25 Nov 2009 03:12:09 GMT 60 利用Eclipse˜q›è¡Œé‡æž„ http://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.html二胡 二胡 Wed, 25 Nov 2009 02:49:00 GMT http://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.html http://www.aygfsteel.com/hulizhong/comments/303588.html http://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.html#Feedback 0 http://www.aygfsteel.com/hulizhong/comments/commentRss/303588.html http://www.aygfsteel.com/hulizhong/services/trackbacks/303588.html
利用Eclipse ˜q›è¡Œé‡æž„
釿ž„å’Œå•元测试是½E‹åºå‘˜çš„两大法å®åQŒä»–们的作用ž®±åƒ½Iºæ°”和水对于äºÞZ¸€æ øP¼Œòq›_‡¡åQŒä¸èµïLœ¼åQŒä½†æ˜¯æ„义深é‡ã€‚预善事åQŒå¿…先利器,本文ž®×ƒ»‹¾læ€Žæ ·åœ?span class="hilite1">Eclipseä¸è¿›è¡Œé‡æž„ã€?
本文介ç»äº?span class="hilite1">Eclipse支æŒçš„釿ž„ç§¾c»ï¼Œå®ƒä»¬çš„å«ä¹‰ï¼Œä»¥åŠæ€Žæ ·é‡æž„ã€‚æœ¬æ–‡åŒæ—¶ä¹Ÿå¯ä»¥ä½œäØ“å¦ä¹ 釿ž„知识的快速手册ã€?
ä»€ä¹ˆæ˜¯é‡æž„
釿ž„æ˜¯æŒ‡åœ¨ä¿æŒç¨‹åºçš„全部功能的基¼‹€ä¸Šæ”¹å˜ç¨‹åºç»“构的˜q‡ç¨‹ã€‚釿ž„çš„¾cÕdž‹æœ‰å¾ˆå¤šï¼Œå¦‚更改类åï¼Œæ”¹å˜æ–ÒŽ³•å,或者æå–代ç 到æ–ÒŽ³•ä¸ã€‚æ¯ä¸€‹Æ¡é‡æž„ï¼Œéƒ½è¦æ‰§è¡Œä¸€¾pÕdˆ—çš„æ¥éª¤ï¼Œ˜q™äº›æ¥éª¤è¦ä¿è¯ä»£ç 和原代ç 相一致ã€?
ä¸ÞZ»€ä¹ˆé‡æž„很é‡è¦
æ‰‹å·¥é‡æž„æ—Óž¼Œå¾ˆå®¹æ˜“在代ç ä¸å¼•å…¥é”™è¯¯ï¼Œä¾‹å¦‚æ‹¼å†™é”™è¯¯æˆ–è€…æ¼æŽ‰äº†é‡æž„çš„æŸä¸€æ¥ã€‚äØ“äº†é˜²æ¢å¼•å…¥é”™è¯¯ï¼Œåœ¨æ¯‹Æ¡é‡æž„å‰åŽï¼Œéƒ½è¦æ‰§è¡Œå……åˆ†çš„æµ‹è¯•ã€‚ä½ å¯èƒ½ä¼šå¥½å¥‡é‡æž„æ˜¯å¦æ˜¯å€¼å¾—çš„ã€?
釿ž„çš„ç†ç”±å¾ˆå¤šã€‚ä½ å¯èƒ½æƒŒ™¦æ›´æ–°ä¸€ŒDµä»£ç 很烂的½E‹åºã€‚或者最åˆçš„设计队ä¼éƒ½ä¸åœ¨äº†åQŒçŽ°åœ¨é˜Ÿä¼ä¸æ¯äh了解˜q™äº›½E‹åºã€‚äØ“äº†æ›´æ–ŽÍ¼Œä½ å¿…™å»è¦é‡æ–°è®¾è®¡æž„å¾½E‹åºæ¥æ»¡‘³ä½ 的需求。å¦ä¸€ä¸ªåŽŸå› æ˜¯åŽŸæ¥çš„è®¾è®¡æ— æ³•ä‹Éä½ å°†æ–°çš„ç‰ÒŽ€§æ·»åŠ è¿›åŽ…R€‚äØ“äº†æ·»åŠ è¿›åŽ»ï¼Œä½ è¦é‡æž„˜q™äº›ä»£ç ã€‚ç¬¬ä¸‰ä¸ªåŽŸå› æ˜¯ä¸€ä¸ªè‡ªåŠ¨é‡æž„的工具å¯ä»¥ä¸ÞZ½ 自动生æˆä»£ç åQŒä¾‹å¦?span class="hilite1">Eclipseä¸çš„釿ž„功能。ä‹Éç”¨é‡æž„ï¼Œä½ å¯ä»¥åœ¨é‡å†™ž®½é‡ž®‘的代ç å’Œä»ä¿æŒè½¯äšgåŠŸèƒ½çš„åŒæ—Óž¼Œä½¿ä»£ç 的逻辑性更好ã€?
‹¹‹è¯•
åœ¨é‡æž„æ—¶åQŒæµ‹è¯•是å分é‡è¦çš„ã€‚åº”ä¸ºé‡æž„改å˜äº†ä»£ç çš„ç»“æž„ï¼Œä½ è¦ä¿è¯é‡æž„åŽä»£ç 的功能没有被改å˜ã€‚æ‰‹å·¥é‡æž„æ—¶åQŒä¸€ä¸ªå¥½çš„æµ‹è¯•套是必™åÈš„。ä‹Éç”¨è‡ªåŠ¨é‡æž„å·¥å…äh˜¯åQŒæµ‹è¯•也是必è¦çš„åQŒä½†ä¸éœ€è¦å¾ˆé¢‘ç¹åQŒåº”䏸™‡ªåЍ釿ž„工具ä¸ä¼šäñ”ç”Ÿæ‰‹å·¥é‡æž„时的那些错误,如拼写错误ã€?
åœ?span class="hilite1">Eclipseä¸å¯ä»¥ä‹É用JUnitæ–¹ä¾¿çš„äØ“½E‹åºåˆ›å¾‹¹‹è¯•代ç åQŒå…·ä½“方法ä¸åœ¨æœ¬æ–‡æ˜q°ã€?
Eclipse ä¸çš„釿ž„
JDTåQ?span class="hilite1">Eclipseä¸çš„Javaæ’äšgåQŒèƒ½å¤Ÿå¯¹Java™å¹ç›®åQŒç±»åQŒæˆ–æˆå‘˜˜q›è¡Œå¤šç§¾cÕdž‹çš„è‡ªåŠ¨é‡æž„。å¯ä»¥é‡‡å–多¿U方法快速的为Java™å¹ç›®ä¸çš„æŸä¸ªå…ƒç´ ˜q›è¡Œé‡æž„ã€?
为æŸäº›å…ƒç´ è¿›è¡Œé‡æž„çš„å‰ææ˜¯ä½ å¿…é¡»é€‰ä¸ä»–ä»¬ã€‚ä½ å¯ä»¥åœ¨å¤šä¸ªè§†å›¾ä¸é€‰æ‹©˜q™äº›å…ƒç´ åQŒåƒå¤§çº²è§†å›¾æˆ–包‹¹è§ˆè§†å›¾ã€‚å¯ä»¥æŒ‰ä½Ctrl或Shift键,在视图ä¸é€‰æ‹©å¤šä¸ªå…ƒç´ 。å¦å¤–一¿Ué€‰æ‹©çš„æ–¹æ³•æ˜¯ä½¿è¯¥å…ƒç´ çš„ç¼–è¾‘åŒºé«˜äº®æ˜„¡¤ºåQŒæˆ–è€…æŠŠé¼ æ ‡å®šä½åˆ°æº½E‹åºæ–‡äšg。在选ä¸å¸Œæœ›é‡æž„çš„å…ƒç´ åŽåQŒå¯ä»¥ä»Žé‡æž„èœå•çš„ä¸‹æ‹‰é¡¹é€‰æ‹©é‡æž„åQŒä¹Ÿå¯ä»¥ä»Žå³é”®å•å‡ÕdŽå¼¹å‡ºèœå•ä¸é€‰æ‹©é‡æž„åèœå•ã€‚åŒæ—Óž¼ŒEclipse ˜q˜æä¾›äº†é‡æž„的快æ·é”®æ“作ã€?
æŸäº›é‡æž„å¯ä»¥åº”用在ä“Qæ„å…ƒç´ ä¸ŠåQŒæœ‰äº›åˆ™åªèƒ½ç”¨åœ¨ç‰¹å®š¾cÕdž‹çš„å…ƒç´ ä¸ŠåQŒå¦‚¾cÀLˆ–æ–ÒŽ³•。在本文的最åŽçš„è¡¨æ ¼ä¸ï¼Œåˆ—å‡ºäº†é‡æž„èƒ½å¤Ÿåº”ç”¨çš„å…ƒç´ ¾cÕdž‹åQŒä»¥åŠé‡æž„的快æ·é”®ã€?
åœ?span class="hilite1">Eclipseä¸ï¼Œæ‰€æœ‰çš„釿ž„都能够在æ£å¼æ‰§è¡Œä¹‹å‰é¢„è§ˆä¸€ä¸‹ã€‚åœ¨é‡æž„å¯¹è¯æ¡†ä¸ç‚¹å‡»“预览”按钮åQŒå¯ä»¥æŸ¥çœ‹æ‰€æœ‰å°†è¦è¢«æ”¹å˜çš„地æ–V€‚å”¯ä¸€æ²¡æœ‰é¢„è§ˆæŒ‰é’®çš„çš„é‡æž„是Pull UpåQŒåœ¨å®ƒçš„釿ž„å‘导ä¸ï¼Œåˆ°æœ€åŽï¼Œé¢„è§ˆé¢æ¿æ€ÖM¼šå‡ºçŽ°ã€‚å¯ä»¥å°†å…¶ä¸çš„个别å˜åŒ–å选掉åQŒè¿™æ ¯‚¿™äº›æ”¹å˜å°±ä¸ä¼šç”Ÿæ•ˆã€?
撤销和é‡å?
åœ¨é‡æž„èœå•䏿œ‰æ’¤é”€å’Œé‡åšé¡¹ã€‚他们和¾~–辑èœå•ä¸çš„æ’¤é”€é‡åšä¸åŒã€‚å³ä½‰K‡æž„改å˜äº†å¾ˆå¤šæ–‡äšgåQŒç¼–辑èœå•ä¸çš„æ’¤é”€é‡åšåªä¼šæ›´æ”¹å½“剿–‡äšgã€‚é‡æž„èœå•ä¸çš„æ’¤é”€å’Œé‡åšåˆ™ä¼šå¯¹ä¸€‹Æ¡é‡æž„的所有文件进行撤销和é‡åšæ“作。但是在使用æ—Óž¼Œå®ƒä»¬æœ‰ä¸€å®šçš„é™åˆ¶ã€?
釿ž„åŽï¼Œæ— è®ºé‡æž„改å˜äº†æ–‡ä»¶ä¸Žå¦ï¼Œå¦‚æžœä»ÖM¸€ä¸ªæ–‡ä»¶è¢«å¦å¤–改å˜è€Œä¸”ä¿å˜äº†ï¼Œä½ å°±æ— æ³•æ’¤é”€æˆ–é‡åšè¿™ä¸ªé‡æž„。å‡å¦‚ä¸€ä¸ªæ–‡ä»¶åœ¨é‡æž„ä¸è¢«ä¿®æ”¹äº†ï¼Œç„¶åŽåˆè¢«¾~–辑了,但是˜q˜æ²¡æœ‰ä¿å˜ï¼Œ˜q™æ—¶ž®×ƒ¼šæœ‰é”™è¯¯ä¿¡æ¯æ½Cºï¼Œå¦‚æžœä½ æƒ³è¦æ’¤é”€æˆ–é‡åšè¯¥é‡æž„åQŒå¿…™åÀL’¤é”€æœªä¿å˜çš„æ–‡äšgã€?
åªè¦æ³¨æ„åˆîC»¥ä¸Šçš„é™åˆ¶æ¡äšgåQŒä½ ž®±å¯ä»¥éšå¿ƒæ‰€‹Æ²çš„寚w‡æž„进行撤销或é‡åšã€‚ä½ ç”šè‡³èƒ½å¤Ÿ¾~–译åQŒè¿è¡Œä½ çš„ç¨‹åºæµ‹è¯•一下,然åŽå†æ’¤é”€è¯¥é‡æž„,åªè¦ä½ 没有改å˜åƈä¿å˜ä»ÖM½•æ–‡äšgã€?
Eclipse ä¸çš„釿ž„¾cÕdž‹
å¦‚æžœä½ çœ‹ä¸€ä¸?span class="hilite1">Eclipseçš„é‡æž„èœå•,å¯ä»¥çœ‹åˆ°å››éƒ¨åˆ†ã€‚第一部分是撤销和é‡åšã€‚其他的三部分包å?span class="hilite1">Eclipseæä¾›çš„三¿Uç±»åž‹çš„é‡æž„ã€?
½W¬ä¸€¿Uç±»åž‹çš„é‡æž„改å˜ä»£ç 的物ç†ç»“构,åƒRenameå’ŒMoveã€‚ç¬¬äºŒç§æ˜¯åœ¨¾cÕd±‚‹Æ¡ä¸Šæ”¹å˜ä»£ç ¾l“æž„åQŒä¾‹å¦‚Pull Upå’ŒPush Downã€‚ç¬¬ä¸‰ç§æ˜¯æ”¹å˜ç±»å†…部的代ç ,åƒExtract Methodå’ŒEncapsulate Fieldã€‚è¿™ä¸‰éƒ¨åˆ†çš„é‡æž„列表如下ã€?
¾cÕdž‹1 物熾l“æž„
l Rename
l Move
l Change Method signature
l Convert Anonymous Class to Nested
l Convert Member Type to New File
¾cÕdž‹2 ¾cÕd±‚‹Æ¡ç»“æž?
l Push Down
l Push Up
l Extract Interface
l Generalize Type (Eclipse 3)
l User Supertype Where Possible
¾cÕdž‹3 ¾cÕd†…部结æž?
l Inline
l Extract Method
l Extract Local Variable
l Extract Constant
l Introduce Parameter
l Introduce Factory
l Encapsulate Field
Rename:
Renameç”¨æ¥æ”¹å˜ä¸€ä¸ªJavaå…ƒç´ çš„åå—ã€‚è™½ç„¶ä½ å¯ä»¥æ‰‹å·¥æ”¹å˜Javaæ–‡äšgJavaå…ƒç´ çš„åå—,但是˜q™æ ·ä¸èƒ½è‡ªåŠ¨æ›´æ–°æ‰€æœ‰å¼•ç”¨å®ƒä»¬çš„æ–‡äšg或Javaå…ƒç´ ã€‚ä½ å¿…é¡»åœ¨é¡¹ç›®ä¸æœçƒ¦æ–‡äšgç„¶åŽæ‰‹å·¥æ›¿æ¢˜q™äº›å¼•用。很å¯èƒ½ä½ å°±ä¼šæ¼æŽ‰ä¸€ä¸ªæˆ–è€…æ”¹é”™ä¸€ä¸ªã€‚Rename釿ž„会智能的更新所有有æ¤å¼•用的地方ã€?
有时候,Javaå…ƒç´ çš„åå—䏿˜¯å¾ˆæ˜Žäº†åQŒæˆ–者它的功能已¾l改å˜äº†ã€‚äØ“äº†ä¿æŒä»£ç çš„å¯è¯»æ€§ï¼Œè¯¥å…ƒç´ çš„åå—ä¹Ÿè¦æ›´æ–°ã€‚ä‹É用Rename釿ž„åQŒèƒ½å¤Ÿå分快æïLš„æ›´æ–°å…ƒç´ çš„åå—和所有引用它的地æ–V€?
è¦äؓ一个Javaå…ƒç´ æ”¹ååQŒåœ¨åŒ…æµè§ˆè§†å›¾æˆ–大纲视图选ä¸è¯¥å…ƒç´ ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©Rename™å¹ï¼Œæˆ–者ä‹É用快æ·é”®Alt+Shift+R。Renameå¯¹è¯æ¡†ä¼šå‡ºçŽ°ã€‚åœ¨˜q™é‡Œæ·Õd…¥æ–°çš„åå—åQŒé€‰æ‹©æ˜¯å¦æ›´æ–°è¯¥å…ƒç´ 的引用。点击预览按钮,会打开预览½H—å£åQŒåœ¨˜q™é‡ŒåQŒä½ å¯ä»¥çœ‹åˆ°é‚£äº›å†…容会被改å˜ã€‚点击OK按钮åQŒé‡æž„结æŸã€?
Move
Moveå’ŒRename很相伹{€‚å®ƒç”¨æ¥æŠŠå…ƒç´ ä»Žä¸€ä¸ªä½¾|®ç§»åŠ¨åˆ°å¦ä¸€ä¸ªä½¾|®ã€‚它主è¦ç”¨æ¥ž®†ç±»ä»Žä¸€ä¸ªåŒ…¿UÕdŠ¨åˆ°å¦ä¸€ä¸ªåŒ…。选ä¸è¦ç§»åŠ¨çš„å…ƒç´ åQŒä»Žé‡æž„èœå•ä¸é€‰æ‹©Move,或者ä‹É用快æ·é”®åQŒAlt+Shift+V,在弹出窗å£ä¸é€‰æ‹©è¦ç§»åŠ¨çš„ç›®çš„åœ°ã€‚ä½ ä»ç„¶å¯ä»¥ç”¨é¢„览功能检查一下有什么改å˜ï¼Œä¹Ÿå¯ä»¥æŒ‰OK按钮直接让其生效ã€?
Change Method Signature
更改æ–ÒŽ³•½{‘Ö能够改å˜å‚æ•°åï¼Œå‚æ•°¾cÕdž‹åQŒå‚数顺åºï¼Œ˜q”回¾cÕdž‹åQŒä»¥åŠæ–¹æ³•çš„å¯è§æ€§ã€‚也å¯ä»¥æ·ÕdŠ åQŒåˆ 除傿•°ã€?
è¦æ‰§è¡Œæ¤é‡æž„åQŒé€‰æ‹©è¦é‡æž„çš„æ–ÒŽ³•åQŒé€‰ä¸é‡æž„èœå•的更æ”ÒŽ–¹æ³•ç¾å项åQŒä¼šå‡ºçŽ°æ›´æ”¹æ–ÒŽ³•½{‘Öå¯¹è¯æ¡†ã€?
在æ¤å¯¹è¯æ¡†ä¸é€‰æ‹©æ–ÒŽ³•的修饰è¯åQŒè¿”å›žç±»åž‹ï¼Œå‚æ•°ã€‚傿•°çš„æ·ÕdŠ åQŒä¿®æ”¹ï¼Œ¿UÕdЍåQŒåˆ 除å¯ä»¥é€šè¿‡åŒ™¾¹çš„æŒ‰é’®æŽ§åˆ¶ã€‚当æ·ÕdŠ æ–°çš„å‚æ•°æ—Óž¼Œä¼šè‡ªåŠ¨èµ‹äºˆé»˜è®¤å€¹{€‚å‡¡æ˜¯è°ƒç”¨æ¤æ–ÒŽ³•的地斚wƒ½ä¼šç”¨æ¤é»˜è®¤å€ég½œä¸ºå‚数输入ã€?
æ”¹å˜æ–ÒŽ³•½{‘Öå¯èƒ½åœ¨æ–¹æ³•ä¸å¯ÆD‡´é—®é¢˜åQŒå¦‚果有问题åQŒå½“ä½ ç‚¹å‡»é¢„è§ˆæˆ–OKæ—Óž¼Œä¼šè¢«æ ‡è®°å‡ºæ¥ã€?
Move Members Type to New File
æ¤é‡æž„将嵌套¾c»è{ä¸ÞZ¸€ä¸ªå•独类。将会创å»ÞZ¸€ä¸ªæ–°çš„Javaæ–‡äšgåŒ…å«æ¤åµŒå¥—类。选ä¸è¦é‡æž„çš„¾c»ï¼Œåœ¨é‡æž„èœå•上选择Move Member Type to New File™å¹ï¼Œåœ¨å¼¹å‡ºçš„å¯¹è¯æ¡†ä¸æ·Õd…¥è¦åˆ›å»ºçš„实例的åå—ã€?
Push Down
æ¤é‡æž„å°†½Ž—ä¸çš„æ–¹æ³•å’Œæˆå‘˜ä»Žçˆ¶¾cÖM¸¿UÕdŠ¨åˆ°å®ƒçš„ç›´æŽ¥å¾cÖM¸åQŒæ‰€æœ‰ä¸‹æŽ¨çš„æ–ÒŽ³•都å¯é€‰ä½œä¸ÞZ¸€ä¸ªæŠ½è±¡æ–¹æ³•留在父¾cÖM¸ã€‚ä¸‹æŽ¨é‡æž„å¯¹äºŽé‡æ–°æž„建项目设计å分有用ã€?
选择若干æ–ÒŽ³•或æˆå‘˜ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©ä¸‹æŽ¨™å¹ï¼Œå¼¹å‡ºä¸‹æŽ¨å¯¹è¯æ¡†ã€?
在æ¤å¯¹è¯æ¡†ä¸åQŒå¯ä»¥åˆ†åˆ«é€‰æ‹©æ–ÒŽ³•或æˆå‘˜ï¼Œæ‰€æœ‰é€‰ä¸å…ƒç´ 都会¿UÕdŠ¨åˆ°å½“å‰ç±»çš„å¾cÖM¸ã€‚当点击Add Required按钮æ—Óž¼Œæ‰€æœ‰å·²é€‰æ‹©å…ƒç´ æ‰€å¿…éœ€çš„å…ƒç´ ä¹Ÿä¼šè‡ªåŠ¨é€‰ä¸ŠåQŒæ¤è¡ŒäØ“òq¶ä¸èƒ½ä¿è¯æ‰€æœ‰å¿…™åÈš„å…ƒç´ éƒ½èƒ½è‡ªåŠ¨é€‰ä¸åQŒè¿˜æ˜¯éœ€è¦ähå·¥ç¡®è®¤ã€‚å½“æœ‰æ–¹æ³•è¢«é€‰ä¸æ—Óž¼Œ¾~–辑按钮ž®×ƒ¼šå¯ç”¨åQŒç‚¹å‡È¼–辑按钮,弹出¾~–è¾‘å¯¹è¯æ¡†ã€‚在其ä¸å¯ä»¥é€‰æ‹©ä¸ºé€‰ä¸æ–ÒŽ³•在当å‰ç±»ä¸é—留抽象方法,˜q˜æ˜¯åœ¨å½“å‰ç±»ä¸åˆ 除这些方法。åŒå‡ÖM¸€å¤©é€‰ä¸çš„æ–¹æ³•,也å¯ä»¥æ‰“å¼€¾~–è¾‘å¯¹è¯æ¡†ã€‚在æ–ÒŽ³•çš„Action列点击,会出çŽîC¸€ä¸ªä¸‹æ‹‰åˆ—表,å¯ä»¥åœ¨å…¶ä¸é€‰æ‹©é—留抽象æ–ÒŽ³•˜q˜æ˜¯åœ¨å½“å‰ç±»ä¸åˆ 除方法。按回èžR键确认编辑结果ã€?
Pull Up
上移与下推类ä¼û|¼Œä¹Ÿæ˜¯åœ¨ç±»ä¹‹é—´¿UÕdЍæ–ÒŽ³•å’Œæˆå‘˜ã€‚上¿UÕd°†æ–ÒŽ³•或æˆå‘˜ä»Žä¸€ä¸ªç±»¿UÕdŠ¨åˆ°å®ƒçš„ä¸€ä¸ªçˆ¶¾cÖM¸ã€‚选ä¸è‹¥å¹²ä¸ªæ–¹æ³•或æˆå‘˜åQŒåœ¨é‡æž„èœå•ä¸é€‰æ‹©ä¸Šç§»™å¹ï¼Œä¸Šç§»å‘导马上会出现ã€?
åœ¨é€‰æ‹©ç›®æ ‡¾cÕd¤šé€‰æ¡†ä¸ï¼Œåˆ—出了当å‰ç±»¾l§æ‰¿çš„æ‰€æœ‰çˆ¶¾c…R€‚ä½ åªèƒ½ž®†æ–¹æ³•或æˆå‘˜¿UÕdŠ¨åˆ°å®ƒä»¬å…¶ä¸çš„一个里é¢ã€?
å¦‚æžœåœ¨é€‰ä¸æ–ÒŽ³•çš„Action列,被设¾|®æˆåœ¨ç›®æ ‡ç±»ä¸å£°æ˜ŽæŠ½è±¡æ–¹æ³•ï¼Œé‚£ä¹ˆåœ¨ç›®æ ‡ç±»çš„éžæŠ½è±¡åç±»ä¸åˆ›å»ºå¿…™åÈš„æ–ÒŽ³•选项å˜äØ“å¯é€‰ã€‚å½“å®ƒé€‰ä¸æ—Óž¼Œç›®æ ‡¾cÈš„所有å¾c»ï¼Œå¦‚æžœå®ƒä»¬ä¸æ²¡æœ‰é€‰ä¸çš„æ–¹æ³•,则会为它们创建选ä¸çš„æ–¹æ³•ã€?
和在下推ä¸ä¸€æ øP¼Œé€‰æ‹©å¤šä¸ªæ–ÒŽ³•åQŒç‚¹å‡È¼–辑按钮,或者åŒå‡ÖM¸€ä¸ªæ–¹æ³•,都会打开¾~–辑æˆå‘˜å¯¹è¯æ¡†ã€‚其䏿œ‰ä¸¤ä¸ªé€‰é¡¹åQŒä¸Š¿UÕd’Œåœ¨ç›®æ ‡ç±»ä¸å£°æ˜ŽæŠ½è±¡æ–¹æ³•。上¿UÕdªæ˜¯ç®€å•çš„å¤åˆ¶æ–ÒŽ³•到到父类ä¸ï¼Œòq¶æä¾›é€‰æ‹©æ˜¯å¦åœ¨å½“å‰ç±»ä¸åˆ 除该æ–ÒŽ³•ã€‚åœ¨ç›®æ ‡¾cÖM¸å£°æ˜ŽæŠ½è±¡æ–ÒŽ³•会在父类ä¸åˆ›å»ÞZ¸€ä¸ªé€‰ä¸æ–ÒŽ³•çš„æŠ½è±¡æ–¹æ³•ï¼Œå¦‚æžœçˆ¶ç±»ä¸æ˜¯æŠ½è±¡¾cÕdˆ™¾|®äؓ抽象¾c»ï¼Œæœ€åŽé€‰ä¸æ–ÒŽ³•留在当剾cÖM¸ã€‚和在下推ä¸ä¸€æ øP¼Œä¹Ÿå¯ä»¥ç‚¹å‡»Action列,å¯ä»¥åœ¨å‡ºçŽ°çš„ä¸‹æ‹‰åˆ—è¡¨ä¸é€‰æ‹©ã€?
如果æ–ÒŽ³•çš„Actionåˆ—é€‰äØ“ä¸Šç§»åQŒåœ¨ä¸‹ä¸€æ¥çš„å‘导ä¸ï¼Œž®†ä¼šè¦æ±‚ä½ é€‰æ‹©æ˜¯å¦åœ¨å½“å‰ç±»ä¸åˆ 除这些方法,选ä¸çš„æ–¹æ³•会在当å‰ç±»ä¸è¢«åˆ 除ã€?
在å‘导的ä»ÀL„一æ¥éƒ½å¯ä»¥æŒ‰å®ŒæˆæŒ‰é’®ï¼Œ¾l“æŸé‡æž„æ“作åQŒæ¤æ—¶æŒ‰ç…§é»˜è®¤è§„åˆ™è¿›è¡Œé‡æž„ã€?
Extract Interface
æç‚¼æŽ¥å£å¯ä»¥ä»Žä¸€ä¸ªå˜åœ¨çš„¾cÖM¸åˆ›å¾ä¸€ä¸ªæŽ¥å£ã€‚ä½ å¯ä»¥é€‰æ‹©åœ¨æŽ¥å£ä¸åŒ…å«ç€ä¸ªç±»çš„那些方法。选ä¸ä¸€ä¸ªç±»åQŒä»Žé‡æž„èœå•选择æç‚¼æŽ¥å£™å¹ï¼Œž®±å¯ä»¥æ‰“å¼€æç‚¼æŽ¥å£å¯¹è¯æ¡†ã€?
˜q™æ¤å¯¹è¯æ¡†ä¸æ·Õd…¥æŽ¥å£çš„åå—,选择希望包å«çš„æ–¹æ³•,在这个列表里é¢åªåˆ—å‡ºäº†å…¬å…±æ–¹æ³•ã€‚é€‰ä¸æ”¹å˜å¯¹ç±»[当剾cÕd]çš„åº”ç”¨äØ“å¯ÒŽŽ¥å£çš„引用选择框,ž®†æŠŠæ‰€æœ‰å¯¹å½“剾cÈš„å¼•ç”¨æ›´æ–°ä¸ºå¯¹æ¤æŽ¥å£çš„引用ã€?
Generalize Type
泛化¾cÕdž‹é‡æž„å¯ä»¥ž®†ä¸€ä¸ªå£°æ˜Žå¯¹è±¡çš„¾cÕdž‹æ”¹å˜ä¸ºå®ƒçš„è¶…¾c»ï¼Œé€‰æ‹©å˜é‡åQŒå‚敎ͼŒå¯¹è±¡æˆå‘˜åQŒæ–¹æ³•返回类型,然åŽé€‰æ‹©é‡æž„èœå•çš„æ³›åŒ–ç±»åž‹é¡¹ã€‚åœ¨æ‰“å¼€çš„æ³›åŒ–ç±»åž‹å¯¹è¯æ¡†åQŒé€‰æ‹©å¸Œæœ›çš„æ–°¾cÕdž‹åQŒç„¶åŽç‚¹å‡Õd®ŒæˆæŒ‰é’®ï¼Œ¾l“æŸé‡æž„ã€?
Use Supertype Where Possible
使用‘…类会将对一个特定类型的引用改å˜ä¸ºå¯¹å®ƒçš„‘…ç±»çš„å¼•ç”¨ã€‚é€‰æ‹©ä¸€ä¸ªç±»åQŒé€‰ä¸é‡æž„èœå•çš„ä‹É用超¾c»é¡¹åQŒä¼šæ‰“开使用‘…ç±»å¯¹è¯æ¡†ã€‚选ä¸å¸Œæœ›çš„è¶…¾cȱ»åž‹ï¼Œç‚¹å‡»å®ŒæˆæŒ‰é’®å®Œæˆé‡æž„ã€‚é‡æž„åŽåQŒinstanceof 表达å¼ä¹Ÿä¼šåšç›¸åº”的替æ¢ã€?
Inline
å†…è”æ˜¯ç”¨ä»£ç 或值æ¥å–代调用æ–ÒŽ³•çš„åœ°æ–¹ï¼Œé™æ€final对象æˆå‘˜åQŒæˆ–局部å˜é‡ã€‚比如说åQŒå¦‚æžœä½ å†…è”一个方法调用,˜q™ä¸ªè°ƒç”¨çš„地方就会被替æ¢ä¸ø™¯¥æ–ÒŽ³•体。è¦å†…è”ä¸€ä¸ªæ–¹æ³•ï¼Œé™æ€final对象æˆå‘˜åQŒå±€éƒ¨å˜é‡ï¼Œé€‰ä¸˜q™äº›å…ƒç´ åQŒåœ¨é‡æž„èœå•ä¸é€‰æ‹©å†…è”™å¹ï¼Œæˆ–者ä‹É用快æ·é”®Alt + Ctrl + I。在éšåŽæ‰“开的内è”å¯¹è¯æ¡†åQŒä½ å¯ä»¥é€‰æ‹©æ˜¯å¦è¦å†…è”æ‰€æœ‰çš„调用åQŒæˆ–è€…æ˜¯é€‰æ‹©çš„è°ƒç”¨ã€‚å¦‚æžœé€‰æ‹©æ‰€æœ‰è°ƒç”¨ï¼Œä½ è¿˜å¯ä»¥é€‰æ‹©æ˜¯å¦åˆ 除声明本èínã€?
Extract Method
如果æ–ÒŽ³•ä¸å«æœ‰è¿‡å¤šç‰¹å®šçš„æ“ä½œåQŒæ–¹æ³•太长,或者其ä¸çš„æŸæ®µä»£ç 被多‹Æ¡ä‹É用,˜q™æ—¶åQŒå¯ä»¥ç”¨æç‚¼æ–ÒŽ³•釿ž„ž®†è¿™éƒ¨åˆ†ä»£ç æå–到å•独的æ–ÒŽ³•ä¸ã€‚在Eclipse ä¸åº”用æ¤é‡æž„方便快æ·ã€?
选ä¸è¦æç‚¼çš„ä»£ç ŒDµï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©æç‚¼æ–ÒŽ³•™å¹ï¼Œæˆ–者ä‹É用快æ·é”®Alt + Shift + Mã€?
在æç‚¼æ–¹æ³•å¯¹è¯æ¡†ä¸ï¼Œè¾“入新方法的åå—åQŒé€‰æ‹©ä¿®é¥°è¯ï¼Œé€‰æ‹©æ˜¯å¦è®©æ–°æ–ÒŽ³•抛出˜q行时异常。在底部æä¾›äº†æ–°æ–ÒŽ³•的预览ã€?
Extract Local Variable
使用一个å˜é‡æ¥ä»£æ›¿ä¸€ä¸ªè¡¨è¾‘ּ有很多好处。如果表辑ּ在多处被使用åQŒè¿™æ ¯‚ƒ½å¤Ÿæé«˜æ€§èƒ½åQŒè€Œä¸”也æé«˜äº†ä»£ç çš„å¯è¯ÀL€§ã€‚è¦æŠŠä¸€ä¸ªè¡¨è¾‘Ö¼æç‚¼ä¸ºå±€éƒ¨å˜é‡ï¼Œé€‰æ‹©è¦æç‚¼çš„表达å¼ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©æç‚¼å±€éƒ¨å˜é‡é¡¹åQŒæˆ–者ä‹É用快æ·é”®Alt + Shift + Lã€?
在æç‚¼å±€éƒ¨å˜é‡å¯¹è¯æ¡†ä¸è¾“入新å˜é‡çš„åå—,选择是å¦è¦æ›¿æ¢æ‰€æœ‰çš„表达å¼ï¼Œæ˜¯å¦ä½¿æ¤å˜é‡ä¸ºfinalã€‚åœ¨å¯¹è¯æ¡†çš„底部æä¾›å˜é‡çš„预览ã€?
Extract Constant
æç‚¼å¸”R‡ä¸Žæç‚¼å±€éƒ¨å˜é‡å¾ˆç›æ€¼¼åQŒå”¯ä¸€çš„区别是æç‚¼å¸”R‡é‡æž„å¯ä»¥é€‰æ‹©æç‚¼å‡ºçš„帔R‡çš„修饰è¯åQŒè€Œä¸”æ¤å¸¸é‡å°†ä½œäØ“¾cÈš„æˆå‘˜å˜é‡ã€?
Introduce Parameter
介ç»å‚æ•°é‡æž„在方法ä¸åˆ›å¾æ–°çš„傿•°åQŒç„¶åŽç”¨æ¤æ–°å‚æ•°å–代局部å˜é‡æˆ–者æˆå‘˜å˜é‡çš„å®žä¾‹ã€‚è¦æ˜¯ç”¨æ¤é‡æž„ï¼Œé€‰ä¸æ–ÒŽ³•ä¸ä¸€ä¸ªæˆå‘˜å˜é‡æˆ–局部å˜é‡çš„引用åQŒç„¶åŽä»Žé‡æž„èœå•ä¸é€‰æ‹©ä»‹ç»å‚æ•°™åV€?
Introduce Factory
工厂是用æ¥åˆ›å»ºæ–°å¯¹è±¡åQŒè¿”回新创å¾å¯¹è±¡çš„æ–¹æ³•ã€‚ä½ å¯ä»¥é€‰æ‹©ä¸€ä¸ªç±»çš„æž„é€ æ–¹æ³•ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©ä»‹ç»å·¥åŽ‚™å¹ï¼Œåº”用æ¤é‡æž„,为椾cÕdˆ›å»ºå·¥åŽ‚æ–¹æ³•ã€?
在介¾lå·¥åŽ‚å¯¹è¯æ¡†åQŒè¾“入工厂方法的åå—和需è¦å·¥åŽ‚æ–¹æ³•åˆ›å»ºçš„å¯¹è±¡çš„åå—ã€‚é€‰æ‹©æž„é€ æ–¹æ³•çš„ä¿®é¥°è¯æ˜¯å¦äØ“¿U有ã€?
点击OK按钮åŽï¼Œåœ¨æŒ‡å®šçš„¾cÖM¸ä¼šå‡ºçŽ°æ¤æŒ‡å®šå·¥åŽ‚æ–ÒŽ³•ã€‚æ¤æ–ÒŽ³•创å¾ä¸€ä¸ªå½“å‰ç±»çš„实例,然厘q”回æ¤å®žä¾‹ã€?
Convert Local Variable to Field
转æ¢å±€éƒ¨å˜é‡äØ“æˆå‘˜å˜é‡é‡æž„åQŒå°†æ–ÒŽ³•内的å˜é‡å£°æ˜Ž¿UÕdŠ¨åˆ°æ–¹æ³•æ‰€åœ¨ç±»ä¸ï¼Œä½¿è¯¥å˜é‡å¯ÒŽ•´ä¸ªç±»å¯è§ã€‚选择一个局部å˜é‡ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©è½¬æ¢å±€éƒ¨å˜é‡äØ“æˆå‘˜å˜é‡™å¹ï¼ŒéšåŽæ‰“å¼€é…ç½®çš„å¯¹è¯æ¡†ã€?
在æ¤å¯¹è¯æ¡†ä¸åQŒæ·»å…¥æˆå‘˜å˜é‡çš„åå—åQŒé€‰æ‹©ä¿®é¥°è¯ï¼Œé€‰æ‹©åœ¨å“ªé‡Œå®žä¾‹åŒ–æ¤æˆå‘˜å˜é‡ã€‚éšåŽçš„å£°æ˜Žä¸ºé™æ€ï¼Œå£°æ˜Žä¸ºfinal 选择™åÒŽ˜¯å¦å¯ä»¥ä‹É用,å–决于实例化ä½ç½®çš„选择情况ã€?
Encapsulate Field
è¦æ£¼‹®çš„实践é¢å‘对象¾~–程åQŒåº”该将æˆå‘˜å˜é‡çš„修饰课|®äØ“¿U有åQŒæä¾›ç›¸åº”的讉K—®å™¨æ¥è®‰K—®˜q™äº›æˆå‘˜å˜é‡ã€‚但是这些æ“作很烦ç。如果ä‹É用了ž®è£…æˆå‘˜å˜é‡é‡æž„åQŒåˆ™å分方便。选择一个æˆå‘˜å˜é‡ï¼Œä»Žé‡æž„èœå•ä¸é€‰æ‹©ž®è£…æˆå‘˜å˜é‡™åV€?
在å°è£…局部å˜é‡å¯¹è¯æ¡†ä¸ï¼Œæ·Õd…¥Getter, Setteræ–ÒŽ³•çš„åå—,选择新方法在哪个æ–ÒŽ³•åŽå‡ºçŽ°ã€‚é€‰æ‹©åˆé€‚的修饰è¯ã€‚应用了æ¤é‡æž„会创å¾ä¸¤ä¸ªæ–°æ–¹æ³•,ž®†æ¤æˆå‘˜å˜é‡çš„修饰课|®äØ“¿U有åQŒå°†å¯Òޤæˆå‘˜å˜é‡çš„引用改å˜äØ“å¯ÒŽ–°æ–ÒŽ³•的引用ã€?
釿ž„™å¹åˆ—表:
下表ä»?span class="hilite1">Eclipseå¸®åŠ©ä¸æå–,列出了儿U釿ž„支æŒçš„Java资溾cÕdž‹åQŒå¯¹åº”的快æ·é”®ã€?
åå— å¯åº”用的Javaå…ƒç´ å¿«æ·é”?
Undo 在一‹Æ¡é‡æž„åŽå¯æ‰§è¡?Alt + Shift + Z
Redo 在一‹Æ¡æ’¤é”€é‡æž„åŽå¯æ‰§è¡Œ Alt + Shift + Y
Rename å¯ÒŽ–¹æ³•,æˆå‘˜å˜é‡åQŒå±€éƒ¨å˜é‡ï¼Œæ–ÒŽ³•傿•°åQŒå¯¹è±¡ï¼Œ¾c»ï¼ŒåŒ…,æºä»£ç 目录,工程å¯ç”¨ã€?Alt + Shift + R
Move å¯ÒŽ–¹æ³•,æˆå‘˜å˜é‡åQŒå±€éƒ¨å˜é‡ï¼Œæ–ÒŽ³•傿•°åQŒå¯¹è±¡ï¼Œ¾c»ï¼ŒåŒ…,æºä»£ç 目录,工程å¯ç”¨ã€?Alt + Shift + V
Change Method Signature å¯ÒŽ–¹æ³•å¯ç”¨ã€?Alt + Shift + C
Convert Anonymous Class to Nested 对匿å内部类å¯ç”¨ã€?nbsp;
Move Member Type to New File 对嵌套类å¯ç”¨ã€?nbsp;
Push Down 对åŒä¸€ä¸ªç±»ä¸æˆå‘˜å˜é‡å’Œæ–ÒŽ³•å¯ç”¨ã€?nbsp;
Pull Up 对åŒä¸€ä¸ªç±»ä¸æˆå‘˜å˜é‡å’Œæ–ÒŽ³•åQŒåµŒå¥—ç±»å¯ç”¨ã€?nbsp;
Extract Interface 对类å¯ç”¨ã€?nbsp;
Generalize Type 对对象的声明å¯ç”¨ã€?nbsp;
Use Supertype Where Possible 对类å¯ç”¨ã€?nbsp;
Inline å¯ÒŽ–¹æ³•ï¼Œé™æ€final¾c»ï¼Œå±€éƒ¨å˜é‡å¯ç”¨ã€?Alt + Shift + I
Extract Method å¯ÒŽ–¹æ³•ä¸çš„一ŒDµä»£ç å¯ç”¨ã€?Alt + Shift + M
Extract Local Variable 寚w€‰ä¸çš„与局部å˜é‡ç›¸å…³çš„代ç å¯ç”¨ã€?Alt + Shift + L
Extract Constant 寚w™æ€final¾cÕd˜é‡ï¼Œé€‰ä¸çš„ä¸Žé™æ€final¾cÕd˜é‡ç›¸å…³çš„代ç å¯ç”¨ã€?nbsp;
Introduce Parameter å¯ÒŽ–¹æ³•ä¸å¯ÒŽˆå‘˜å˜é‡å’Œå±€éƒ¨å˜é‡çš„引用å¯ç”¨ã€?nbsp;
Introduce Factory å¯ÒŽž„é€ æ–¹æ³•å¯ç”¨ã€?nbsp;
Convert Local Variable to Field 对局部å˜é‡å¯ç”¨ã€?Alt + Shift + F
Encapsulate Field å¯ÒŽˆå‘˜å˜é‡å¯ç”¨ã€?nbsp;
本文介ç»äº?span class="hilite1">Eclipseæä¾›çš„å„¿U釿ž„ã€‚è¿™äº›é‡æž„易于ä‹É用,å¯ä»¥¼‹®ä¿ä»£ç 釿ž„æ›´åŠ æ–¹ä¾¿å®‰å…¨ã€‚è€Œä¸”å¯ä»¥è‡ªåŠ¨ç”Ÿæˆä»£ç 以æé«˜ç”Ÿäº§çއã€?
æŸäº›é‡æž„改å˜äº†æŸäº›ç±»çš„结构,但没有改å˜é¡¹ç›®ä¸å…¶ä»–¾cÈš„¾l“æž„åQŒå¦‚下推åQŒä¸Š¿U»é‡æž„。这æ—Óž¼Œž®Þp¦¼‹®ä¿™å¹ç›®ä¸æ‰€æœ‰å¯¹æ”¹å˜å…ƒç´ 的引用都è¦è¢«æ›´æ–°ã€‚这也是ä¸ÞZ»€ä¹ˆè¦æœ‰ä¸€ä¸ªå¥½çš„æµ‹è¯•å¥—ã€‚åŒæ—Óž¼Œä½ ä¹Ÿè¦æ›´æ–°æµ‹è¯•套ä¸çš„å¯ÒŽ”¹å˜å…ƒç´ 的引用。所以说åQŒé‡æž„å’Œå•å…ƒ‹¹‹è¯•的有机结åˆå¯¹äºŽèÊY件开呿˜¯å¤šä¹ˆçš„é‡è¦ã€? ]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
ÂÀÁºÊÐ |
ÂåÑôÊÐ |
¡µÂÏØ |
×ñÒåÊÐ |
¾ÅÕ¯¹µÏØ |
»³ÈÊÏØ |
Äþº£ÏØ |
ÄϺÍÏØ |
ËïÎâÏØ |
¹ȪÊÐ |
´ó¸ÛÇø |
°ºÈÊÏØ |
ÓÀ¶¨ÏØ |
ËàÄþÏØ |
ÌìµÈÏØ |
¶¨ÌÕÏØ |
¹Ì°²ÏØ |
ãëÉÏÏØ |
½ðËþÏØ |
ÁÙº£ÊÐ |
µ¤Õ¯ÏØ |
ÁúÄÏÏØ |
¼ÎºÌÏØ |
ÖÜÖÁÏØ |
ÎâÇÅÏØ |
Å̽õÊÐ |
Îä³ÇÏØ |
¹ð¶«ÏØ |
Ë«ÅÆÏØ |
ÄþÇ¿ÏØ |
×ó¹±ÏØ |
Ñ |
Ñ®ÑôÏØ |
¸»Æ½ÏØ |
»·áÏØ |
ÍÅ·çÏØ |
ÕØÇìÊÐ |
ÁÙ½ÊÐ |
ÒÁÎáÏØ |
ÈøåÈÏØ |
³¤É³ÊÐ |