如果要我只選一個(gè)升級到XE的原因,我會(huì )選重構。對用慣D7的朋友,這確實(shí)是一個(gè)非常實(shí)用的新功能,但如果你用過(guò)Visual Studio,就會(huì )發(fā)現微軟早就實(shí)現了類(lèi)似的功能。讓人困惑的是,XE的重構子菜單有一長(cháng)串,很多菜單很難直觀(guān)地想像出其功能。別擔心,這些都是給建模用的(比如把某個(gè)類(lèi)方法轉移到另外一個(gè)類(lèi)),你常用到的只有幾個(gè),仔細的你會(huì )發(fā)現其實(shí)就是設了快捷鍵的那幾個(gè)。

1. Rename: 包括重命名變量,函數名,組件名等等。好處是它會(huì )把整個(gè)項目里所有引用的地方都自動(dòng)修改!經(jīng)常碰到名字起的不好或者不一致的,想要修改又嫌麻煩,現在省事多了。
2. Declare Variable,Declare Field: 自動(dòng)聲明,舉個(gè)例子: for i:=0 to TmpList.Count-1 do begin ...end; 如果變量i沒(méi)有聲明,可以用這個(gè)功能加個(gè)聲明。麻煩的是會(huì )彈出對話(huà)框讓自己選變量類(lèi)型,并沒(méi)有節省太多時(shí)間
3. Extract Method: 提取方法。這個(gè)也很實(shí)用,舉個(gè)例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Caption := 'This is a Test';
Button1.Enabled := false;
end;
我們經(jīng)常會(huì )在form的create事件里做很多的初始化操作,有時(shí)候發(fā)現這些初始化操作需要重復執行,選中要提取的代碼,選擇Extract Method,指定方法名為InitScreen,如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
InitScreen;
end;
procedure TForm1.InitScreen;
begin
Form1.Caption := 'This is a Test';
Button1.Enabled := false;
end;
如果提取的代碼中引用了本地變量,會(huì )自動(dòng)給新方法加上引用聲明。不過(guò),如果提取的代碼過(guò)于復雜的時(shí)候有時(shí)會(huì )出錯,需要自己手工修改。
4. Extract Resource String: 把一個(gè)字符串聲明稱(chēng)resourcestring類(lèi)型的常量,目前沒(méi)發(fā)現有什么用處
5. Change Params: 修改函數參數,很不實(shí)用的功能
6. Find Unit: 查找類(lèi)所在的單元,這個(gè)功能本來(lái)應該很有用,比如你在網(wǎng)上拷貝了一段代碼,結果編譯提示你找不到某個(gè)類(lèi)型,用這個(gè)功能,輸入類(lèi)名,就可以告訴你在哪個(gè)單元里,并自動(dòng)加到Interface或者implementation區域??墒?,在實(shí)際使用的過(guò)程中,先是打開(kāi)特別慢,我ssd的硬盤(pán)都要轉半天,似乎每次都重新索引。其次就是有時(shí)有些類(lèi)明明有就是找不到,目前也不清楚怎么回事??上н@么好的一個(gè)功能變雞肋,不知道XE2中有沒(méi)有改進(jìn)。
以上就是XE中常用到的幾個(gè)和重構相關(guān)的功能,其實(shí)重構本身遠不止這些,工具能實(shí)現的只是很小的一部分而已。推薦大家讀一讀《重構》這本書(shū),搞清楚什么是代碼里的Bad Smell,對提高代碼質(zhì)量非常的有幫助。
聯(lián)系客服