国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
CSDN_Eclipse實(shí)戰(zhàn)重構(gòu)與測(cè)試(圖解)
Eclipse實(shí)戰(zhàn)重構(gòu)與測(cè)試(圖解)
Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù)(圖1),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Tools,JDT)。Eclipse Platform 為工具開(kāi)發(fā)提供一組健壯的服務(wù)和 API。它使來(lái)自完全不同的供應(yīng)商的工具之間的集成變得平滑,為不同類型的開(kāi)發(fā)工作創(chuàng)建了一個(gè)無(wú)縫的環(huán)境。
圖1:Eclipse框架
何謂重構(gòu)?
重構(gòu)――是指在不改變軟件任何功能的前提下對(duì)代碼進(jìn)行修改,調(diào)整其結(jié)構(gòu),提高其可理解性,降低其修改的成本。
為什么重構(gòu)?
重構(gòu)的基本思想就是集中精力使設(shè)計(jì)簡(jiǎn)化,并且在新的需求出現(xiàn)時(shí)提供一個(gè)持續(xù)發(fā)展(而非擴(kuò)展)的環(huán)境。重構(gòu)是一項(xiàng)功能強(qiáng)大的技術(shù),但需以微小的步伐修改程序才行。因?yàn)樵谥貥?gòu)時(shí)可能在你不經(jīng)意之間引入了一些錯(cuò)誤,尤其是我們?cè)谑止みM(jìn)行時(shí)更是如此。有這樣的危險(xiǎn)存在,那我們?yōu)槭裁匆獙?duì)現(xiàn)有運(yùn)行良好的程序進(jìn)行重構(gòu)呢?
重構(gòu)可以改進(jìn)軟件的設(shè)計(jì);
重構(gòu)可以使你的代碼看起來(lái)更易理解;
重構(gòu)可以找出潛伏的臭蟲(chóng);
重構(gòu)可以幫助你提高編程的速度――在一次次的迭代過(guò)程中阻止系統(tǒng)腐敗變質(zhì),減少在調(diào)試中所花的時(shí)間;
重構(gòu)這個(gè)工具有太多太多的好處,它可以使我們更快速的開(kāi)發(fā)軟件,甚至還可以提高我們的設(shè)計(jì)質(zhì)量。
前面也提到過(guò)手工重構(gòu)可能會(huì)引入一些錯(cuò)誤,所以我們需要一個(gè)可以自動(dòng)重構(gòu)的工具――Eclipse。只要我們知道 Eclipse 實(shí)現(xiàn)了什么樣的重構(gòu)工具,并理解了它們的適用情況,我們的生產(chǎn)力就會(huì)得到極大的提高。當(dāng)然要降低對(duì)代碼造成破壞的風(fēng)險(xiǎn),一套可靠的測(cè)試機(jī)制是必不可少的。一整組完全自動(dòng)化的測(cè)試就是一個(gè)強(qiáng)大的臭蟲(chóng)偵測(cè)器,能夠大大縮減查著臭蟲(chóng)所需要的時(shí)間。頻繁的運(yùn)行這個(gè)測(cè)試可以極大的減小錯(cuò)誤產(chǎn)生的可能,所以在重構(gòu)中測(cè)試也是非常重要的,Martin Fowler說(shuō):“沒(méi)有測(cè)試就不要輕易地重構(gòu),那樣會(huì)給你帶來(lái)麻煩的”。同樣Eclipse也集成了對(duì)JUnit的支持。
圖2:Eclipse的Java工作臺(tái)
本文所用到的重構(gòu)手法簡(jiǎn)介:
手法一:Encapsulate Field (封裝值域)――在類中存在一個(gè)public值域。將它聲明為private,并提供響應(yīng)的訪問(wèn)函數(shù)。
public String _name;
private String _name;
public String getName() {return _name;}
public void setName(String arg) {_name = arg;}
手法二:Pull Up Method (函數(shù)上移)――有些函數(shù),在各個(gè)subClass中產(chǎn)生完全相同的結(jié)果。將該函數(shù)移至superClass。
手法三:Extract InterFace (提煉接口)――若干客戶使用class接口中的同一子集;或者兩個(gè)classes的接口有部分相同。將相同的子集提煉到一個(gè)獨(dú)立的接口中。
好了,在簡(jiǎn)單的了解了為何重構(gòu)和測(cè)試的介紹和重要性后,讓我們用Eclipse一步步的圖解重構(gòu)與測(cè)試:
第一步:建立工程
按鈕選擇java打開(kāi)Java工作環(huán)境(圖2),選擇菜單File > New > Project…(在package Explorer欄里單擊右鍵也可)彈出New Project對(duì)話框,選擇Java > Java Project >Next,填入工程名(我這里為traffic) > Next,在設(shè)置對(duì)話框中選擇Libraries標(biāo)簽框(圖3),點(diǎn)擊Add External JARs按鈕加入JUnit.jar(可以到http://www.junit.org/免費(fèi)下載),最后點(diǎn)擊Finish完成。這樣一個(gè)工程就建好了。
圖3:添加Junit
第二步:建立類
原本想遵循極限編程的原則,在建立新類寫(xiě)代碼前,必須先建立好完全自動(dòng)的測(cè)試該類功能的單元測(cè)試(特別是在重構(gòu)之前)。但由于Eclipse好像在沒(méi)有這個(gè)類之前無(wú)法運(yùn)行這個(gè)測(cè)試(也許可以,如果你知道的話請(qǐng)告訴我),說(shuō)找不到這個(gè)類。因此我先建立這些類再編寫(xiě)測(cè)試。
在package explorer欄中(菜單選擇也可)右擊選擇New > Source Folder 彈出New Source Folder對(duì)話框在Folder Name中填入文件夾名(我這里為src)。然后在package explorer欄中右擊選擇New > Class 彈出New Java Class對(duì)話框,在Name中輸入類名(我這里為Car),按Finish完成。同樣方法再建立Truck和Person類(類圖1),代碼如清單一。
清單一:
//Car.java……
public class Car {
public String go() {
if(engineStarted)
return "Vroom";
else
return "...";
}
public void startEngine() {
engineStarted = true;
}
public void stopEngine() {
engineStarted = false;
}
private boolean engineStarted;
}
//Truck.java……
public class Truck {
public String go() {
if(engineStarted)
return "Rumble";
else
return "...";
}
public void startEngine() {
engineStarted = true;
}
public void stopEngine() {
engineStarted = false;
}
public void loadCargo() {
//load Cargo
}
private boolean engineStarted;
}
//Person.java……
public class Person {
public Person(String arg){
if(arg.equals("Car")){
Car vehicle = new Car();
vehicle.startEngine();
vehicleName = vehicle.go();
}
else if(arg.equals("Truck")) {
Truck vehicle = new Truck();
vehicle.startEngine();
vehicleName = vehicle.go();
}
}
public String getVehicle(){
return vehicleName;
}
private String vehicleName;
}
類圖1
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
NetBeans 6.0 提高生產(chǎn)力之Java代碼編輯器
測(cè)試實(shí)踐:Eclipse 之 JUnit
CSDN技術(shù)中心 在Eclipse中使用JUnit(翻譯)
一個(gè)在windows和基于SWT的java程序間拖拽的例子(外部文件拖曳到SWT)
Eclipse Apache CXF 集成
Data注解的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服