ï»??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-cnWed, 25 Nov 2009 03:12:09 GMTWed, 25 Nov 2009 03:12:09 GMT60利用Eclipse˜q›è¡Œé‡æž„http://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.html二胡二胡Wed, 25 Nov 2009 02:49:00 GMThttp://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.htmlhttp://www.aygfsteel.com/hulizhong/comments/303588.htmlhttp://www.aygfsteel.com/hulizhong/archive/2009/11/25/303588.html#Feedback0http://www.aygfsteel.com/hulizhong/comments/commentRss/303588.htmlhttp://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件开呿˜¯å¤šä¹ˆçš„é‡è¦ã€?


二胡 2009-11-25 10:49 å‘表评论
]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÂÀÁºÊÐ| ÂåÑôÊÐ| ¡µÂÏØ| ×ñÒåÊÐ| ¾ÅÕ¯¹µÏØ| »³ÈÊÏØ| Äþº£ÏØ| ÄϺÍÏØ| ËïÎâÏØ| ¹ȪÊÐ| ´ó¸ÛÇø| °ºÈÊÏØ| ÓÀ¶¨ÏØ| ËàÄþÏØ| ÌìµÈÏØ| ¶¨ÌÕÏØ| ¹Ì°²ÏØ| ãëÉÏÏØ| ½ðËþÏØ| ÁÙº£ÊÐ| µ¤Õ¯ÏØ| ÁúÄÏÏØ| ¼ÎºÌÏØ| ÖÜÖÁÏØ| ÎâÇÅÏØ| Å̽õÊÐ| Îä³ÇÏØ| ¹ð¶«ÏØ| Ë«ÅÆÏØ| ÄþÇ¿ÏØ| ×ó¹±ÏØ| ÑÓ±ß| Ñ®ÑôÏØ| ¸»Æ½ÏØ| »·áÏØ| ÍÅ·çÏØ| ÕØÇìÊÐ| ÁÙ½­ÊÐ| ÒÁÎáÏØ| ÈøåÈÏØ| ³¤É³ÊÐ|