欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

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

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

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久