在面向對象編程語言中一般都會有這樣的概念,比較容易混淆。一般來說如果換種說法的話就比較容易明白。重構可以說是覆蓋,用覆蓋一詞來講就比較清楚。在面向對象的一個特性--繼承中就表現(xiàn)出重構的意思。

目前創(chuàng)新互聯(lián)建站已為1000多家的企業(yè)提供了網站建設、域名、網絡空間、網站運營、企業(yè)網站設計、海興網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
重構,就是繼承于父類方法的子類將子類的方法重寫,方法名及參數(shù)完全相同,就是有相同的聲明,但是實現(xiàn)不一致或完全不同。這樣如果對面向對象理解比較深刻的話,就清楚重構正是面向對象編程的一大特性。
當軟件工程師從事軟件開發(fā)時,在時間比較緊的情況下,通常需要讓軟件最先上線,然后在后期工作中慢慢重新配置和調整,以替換由于時間不足而留下的漏洞。那么在進行調整的過程中,有什么需要了解呢?其中最重要的是心態(tài)、技巧和技術三個方面。在學習電腦培訓的過程中,還需要掌握更多的問題。
一、關于心態(tài)
在任何項目的實踐中,心態(tài)問題是最重要的,其次就是技術問題。為什么心態(tài)問題是最重要的呢?因為對于10年以上的舊功能模塊,最復雜的功能模塊實際上是業(yè)務邏輯,而不是技術實現(xiàn)。因此,對于舊系統(tǒng)的重建,需要整理模塊中大規(guī)模累積的業(yè)務邏輯,這本身就為重構提供了無形的壓力。與核心業(yè)務模塊相結合,較少的業(yè)務邏輯將導致在線收入減少,最終導致程序員的大量時間付出。這一系列背景使得重構過程中的心理壓力變得更大。
重構項目的最佳方法是仔細澄清所有業(yè)務邏輯,然后使用思維來繪制圖片,這樣您就可以清楚地了解過去所有的業(yè)務邏輯。清晰的業(yè)務邏輯,對于后續(xù)系統(tǒng)重新設計和編碼有很大的幫助,并且還是角色的決定性部分。
二、關于技巧
重構的經驗和技巧遠比技術實力重要,因為經驗可以減少許多不必要的麻煩。在我說出自己的想法之前,我想問一個問題:如果在重構的過程中遇到一個問題,進行處理會讓項目更好,但是不解決也沒有太大的影響,你會如何去做呢?在這種情景下,麗江麗江北大青鳥建議,最好是不做,在不影響重構的目標的情況下,能不做最好是不做,這并不是懶惰,而是你永遠不知道會有多大的坑在等著你。
三、關于技術
技術是最后一步,但是并不是最重要的一步,至少在我進行重構的過程中,由于我的心態(tài)或缺乏技巧,我基本上能夠完成了60%的工作。在我的項目中重構的技術能夠在不到10%的時間內完成。重構技術實際上更多地是使用設計模式以簡潔的代碼呈現(xiàn)復雜的業(yè)務邏輯。簡而言之,它是使用設計模式來承載復雜的業(yè)務邏輯并使編寫的代碼盡可能簡潔。
在進行重構需要更多測試,主要是對業(yè)務的深刻理解和對抽象思維的進一步使用。如果業(yè)務是深入和抽象的,那么可以選擇麗江北大青鳥進行學習設計模式。如果是相反的話,就沒有辦法做到這一點。
張小喜告別996 實現(xiàn)高效編程 減少開發(fā)壓力 開啟Java高效編程之門(完整版高清視頻)百度網盤 ?
鏈接:
提取碼: aizj 復制這段內容后打開百度網盤手機App,操作更方便哦? ?
若資源有問題歡迎追問~ ?
先了解再做項目!
軟件項目重在設計,如果沒有一個結構化、系統(tǒng)化的設計就開始項目開發(fā),是不明智的,到最后可能會變成一個龐大、復雜、難于維護的境地,而等項目完成了,在用設計模式重構,還會增加軟件測試工作量,對于之前的內容都要全部重新測試,浪費資源,得不償失。
對于設計模式的學習,推薦一本經典書籍《軟件秘笈-設計模式那點事》,相信會對你有幫助的!祝你早日學會設計模式!
//Platform.java
public class Platform {
/**
* @author lusong
*/
private String brandName;
private String model;
public Platform(String bString,String mString) {
brandName=bString;
model=mString;
}
public String getBrandName() {
return brandName;
}
public String getModel(){
return model;
}
}
//ShiXian.java,其中的getList()方法返回你要求的東東
//不知道合不合你的胃口
import java.util.*;
public class ShiXian {
ArrayListPlatform PlatformList=new ArrayListPlatform();
//用于包含型號的名稱,用于驗證重復,在getLIst方法中使用,因為內置類不能訪問方法的局部變量所有在此定義方法中的變量
ListString arrayList=new ArrayListString();
public ShiXian() {
//向該集合中添加成員,型號之間用逗號隔開
PlatformList.add(new Platform("諾基亞","7210,5530,2120"));
PlatformList.add(new Platform("摩托羅拉","V3,L6"));
PlatformList.add(new Platform("諾基亞","N70,N73,N95"));
PlatformList.add(new Platform("摩托羅拉","V4,L7"));
PlatformList.add(new Platform("摩托羅","V4,L7"));
PlatformList.add(new Platform("摩","V4,L7"));
PlatformList.add(new Platform("摩","V4,L7"));
//你可以隨意添加成員,注意型號之間用逗號隔開
}
//你的要求是返回一個包含所有品牌的List,每個List項為一個包含型號的List
public ListArrayListString getList(){
//用于最終返回結果的List
ListArrayListString list=new ArrayListArrayListString(){
//重寫toString()方法,便于顯示手機名稱
@Override
public String toString() {
int i=0;
// TODO Auto-generated method stub
StringBuilder stringBuilder=new StringBuilder();
for (Iterator iterator = this.iterator(); iterator.hasNext();) {
ArrayListString arrayList1 = (ArrayListString) iterator.next();
stringBuilder.append(arrayList.get(i));
stringBuilder.append("的型號為:");
i=i+1;
stringBuilder.append(arrayList1.toString());
}
return stringBuilder.toString();
}
};
for (Iterator iterator = PlatformList.iterator(); iterator.hasNext();) {
Platform platform=(Platform)iterator.next();
if (arrayList.contains(platform.getBrandName())) {
//該手機已經存在,只用添加型號,并且驗證是否重復
String[] strings=platform.getModel().split(",");
ArrayListString arrayList3=list.get(arrayList.indexOf(platform.getBrandName()));
for (int i = 0; i strings.length; i++) {
if (!arrayList3.contains(strings[i])) {
arrayList3.add(strings[i]);
}
}
}
else {
//該手機還不存在,要添加該手機,并添加型號
arrayList.add(platform.getBrandName());
ArrayListString arrayList3=new ArrayListString();
String[] strings=platform.getModel().split(",");
for (int i = 0; i strings.length; i++) {
arrayList3.add(strings[i]);
}
list.add(arrayList3);
}
}
return list;
}
public static void main(String[] args) {
System.out.println(new ShiXian().getList());
}
}
網站欄目:java代碼重構圖 代碼重構方法
文章URL:http://www.jbt999.com/article16/hppigg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站收錄、網站營銷、標簽優(yōu)化、品牌網站建設、軟件開發(fā)、定制網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)