關(guān)于java代碼重構(gòu)6的信息

在JAVA中節(jié)點同構(gòu)不同構(gòu)是什么意思

你說的應(yīng)該是重構(gòu)的意思。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),榆次企業(yè)網(wǎng)站建設(shè),榆次品牌網(wǎng)站建設(shè),網(wǎng)站定制,榆次網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,榆次網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

java重構(gòu):指程序員對已有程序在盡量不改變接口的前提下,進行重新編寫代碼的工作,一般有以下幾方面:1、去除已知bug。2、提高程序運行效率。3、增加新的功能。

Java代碼的重構(gòu)模式主要有三種:

重命名方法重構(gòu)模式、引入解釋性變量重構(gòu)模式、以查詢?nèi)〈R時變量重構(gòu)模式

重命名方法重構(gòu)模式建議執(zhí)行如下的步驟來完成:

1.建立一個具有新名稱的方法

2.將舊方法的方法體復(fù)制進新方法

3.講舊方法的方法體修改為調(diào)用新方法

4.將所有引用舊方法的地方修改為引用新方法

5.刪除舊方法

引入解釋性變量重構(gòu)模式步驟相對簡單,如下:

1.聲明一個局部變量,并將其初始化為需要替換的表達式部分

2.對于復(fù)雜的表達式,用新的局部變量代替其中需要替換的部分

3.對于該表達式的其他部分,重復(fù)這個過程

以查詢?nèi)〈R時變量重構(gòu)模式的步驟如下:

1.找出只賦值了一次的局部變量

2.將該局部變量聲明為final并重新編譯(以確保該變量的確只賦值了一次)

3.復(fù)制賦值語句的等號右側(cè)的表達式,并將其修改為一個新方法的方法體

4.將賦值語句的等號右側(cè)更改為對新方法的調(diào)用

5.將所有對該局部變量的使用替換為對新方法的調(diào)用

6.刪除賦值語句以及局部變量的聲明

重構(gòu)舉例:(簡化代碼、提升效率)

重構(gòu)前:

if(list != null list.size() 0){

for(int i = 0; i list.size(); i++){

//skip...

}

}

重構(gòu)后

if(list != null){

for(int i = 0, len = list.size(); i len; i++){

//skip...

}

}

java 代碼重用 真么體現(xiàn)的? 重構(gòu)和重用是一個意識嗎?

重構(gòu)可以說是覆蓋,用覆蓋一詞來講就比較清楚。

在面向?qū)ο蟮囊粋€特性--繼承中就表現(xiàn)出重構(gòu)的意思。

重構(gòu),就是繼承于父類方法的子類將子類的方法重寫,方法名及參數(shù)完全相同.

重用是繼承了就可以用父類定義的方法和變量,不用再定義一次。

比如說

class B {

public void see(){

System.out.println("this is b");

}

}

public class A extends B{

public void see() {

System.out.println("this is a");

}

public static void main(String[] args) {

B b=new A();

b.see();

}

}

這是重構(gòu)的意思。

class B {

public void see(){

System.out.println("this is b");

}

}

public class A extends B{

public static void main(String[] args) {

B b=new A();

b.see();

}

}

這是重用的意思

Java中為什么老是說重構(gòu),重構(gòu)到底是什么意思?

首先,重構(gòu)這個概念,不是JAVA所特有的,而是軟件工程的一個概念。

主要是指改善現(xiàn)有的程序代碼,使其更方便、簡單的使用,提高可重用性、可維護性。

在面向?qū)ο驝++\C#\JAVA等語言中,重構(gòu)的概念一般是指對類進行重構(gòu),一般在現(xiàn)有類的某些功能方法不能滿足擴展需要,或者修復(fù)BUG時,就需要重構(gòu)

重構(gòu)是一個可迭代的過程,可以對一個功能重復(fù)重構(gòu),直到其滿足軟件的需求、維護和可擴展性

重構(gòu)的方法比較多,一本書也說不完,一些概念性的內(nèi)容見百科

java中什么是代碼重構(gòu),什么時候需要代碼重構(gòu)

代碼重構(gòu)(英語:Code refactoring)重構(gòu)就是在不改變軟件系統(tǒng)外部行為的前提下,改善它的內(nèi)部結(jié)構(gòu)。

軟件重構(gòu)需要借助工具完成,重構(gòu)工具能夠修改代碼同時修改所有引用該代碼的地方。在極限編程的方法學(xué)中,重構(gòu)需要單元測試來支持。

java重構(gòu):指程序員對已有程序在盡量不改變接口的前提下,進行重新編寫代碼的工作,一般有以下幾方面:

1、去除已知bug。

2、提高程序運行效率。

3、增加新的功能。

重構(gòu)舉例:(簡化代碼、提升效率)

重構(gòu)前:

if(list != null list.size() 0){

for(int i = 0; i list.size(); i++){

//skip...

}

}

重構(gòu)后

if(list != null){

for(int i = 0, len = list.size(); i len; i++){

//skip...

}

}

何時著手重構(gòu)(Refactoring)

新官上任三把火,開始一個全新??、腳不停蹄、加班加點,一支聲勢浩大的千軍萬"碼"夾裹著程序員激情和扣擊鍵盤的鳴金奮力前行,勢如破竹,攻城掠地,直指"黃龍府"。

開發(fā)經(jīng)理是這支浩浩湯湯代碼隊伍的統(tǒng)帥,他負責這支隊伍的命運,當齊桓公站在山頂上看到管仲訓(xùn)練的隊伍整齊劃一地前進時,他感嘆說"我有這樣一支軍隊哪里還怕沒有勝利呢?"。但很遺憾,你手中的這支隊伍原本只是散兵游勇,在前進中招兵買馬,不斷壯大,所以隊伍變形在所難免。當開發(fā)經(jīng)理發(fā)覺隊伍變形時,也許就是克制住攻克前方山頭的誘惑,停下腳步整頓隊伍的時候了。

Kent Beck提出了"代碼壞味道"的說法,和我們所提出的"隊伍變形"是同樣的意思,隊伍變形的信號是什么呢?以下列述的代碼癥狀就是"隊伍變形"的強烈信號:

·代碼中存在重復(fù)的代碼

中國有118 家整車生產(chǎn)企業(yè),數(shù)量幾乎等于美、日、歐所有汽車廠家數(shù)之和,但是全國的年產(chǎn)量卻不及一個外國大汽車公司的產(chǎn)量。重復(fù)建設(shè)只會導(dǎo)致效率的低效和資源的浪費。

程序代碼更是不能搞重復(fù)建設(shè),如果同一個類中有相同的代碼塊,請把它提煉成類的一個獨立方法,如果不同類中具有相同的代碼,請把它提煉成一個新類,永遠不要重復(fù)代碼。

·過大的類和過長的方法

過大的類往往是類抽象不合理的結(jié)果,類抽象不合理將降低了代碼的復(fù)用率。方法是類王國中的諸侯國,諸侯國太大勢必動搖中央集權(quán)。過長的方法由于包含的邏輯過于復(fù)雜,錯誤機率將直線上升,而可讀性則直線下降,類的健壯性很容易被打破。當看到一個過長的方法時,需要想辦法將其劃分為多個小方法,以便于分而治之。

·牽一毛而需要動全身的修改

當你發(fā)現(xiàn)修改一個小功能,或增加一個小功能時,就引發(fā)一次代碼地震,也許是你的設(shè)計抽象度不夠理想,功能代碼太過分散所引起的。

·類之間需要過多的通訊

A類需要調(diào)用B類的過多方法訪問B的內(nèi)部數(shù)據(jù),在關(guān)系上這兩個類顯得有點狎昵,可能這兩個類本應(yīng)該在一起,而不應(yīng)該分家。

·過度耦合的信息鏈

"計算機是這樣一門科學(xué),它相信可以通過添加一個中間層解決任何問題",所以往往中間層會被過多地追加到程序中。如果你在代碼中看到需要獲取一個信息,需要一個類的方法調(diào)用另一個類的方法,層層掛接,就象輸油管一樣節(jié)節(jié)相連。這往往是因為銜接層太多造成的,需要查看就否有可移除的中間層,或是否可以提供更直接的調(diào)用方法。

·各立山頭干革命

如果你發(fā)現(xiàn)有兩個類或兩個方法雖然命名不同但卻擁有相似或相同的功能,你會發(fā)現(xiàn)往往是因為開發(fā)團隊協(xié)調(diào)不夠造成的。筆者曾經(jīng)寫了一個頗好用的字符串處理類,但因為沒有及時通告團隊其他人員,后來發(fā)現(xiàn)項目中居然有三個字符串處理類。革命資源是珍貴的,我們不應(yīng)各立山頭干革命。

·不完美的設(shè)計

在筆者剛完成的一個比對報警項目中,曾安排阿朱開發(fā)報警模塊,即通過Socket向指定的短信平臺、語音平臺及客戶端報警器插件發(fā)送報警報文信息,阿朱出色地完成了這項任務(wù)。后來用戶又提出了實時比對的需求,即要求第三方系統(tǒng)以報文形式向比對報警系統(tǒng)發(fā)送請求,比對報警系統(tǒng)接收并響應(yīng)這個請求。這又需要用到Socket報文通訊,由于原來的設(shè)計沒有將報文通訊模塊獨立出來,所以無法復(fù)用阿朱開發(fā)的代碼。后來我及時調(diào)整了這個設(shè)計,新增了一個報文收發(fā)模塊,使系統(tǒng)所有的對外通訊都復(fù)用這個模塊,系統(tǒng)的整體設(shè)計也顯得更加合理。

每個系統(tǒng)都或多或少存在不完美的設(shè)計,剛開始可能注意不到,到后來才會慢慢凸顯出來,此時唯有勇于更改才是最好的出路。

·缺少必要的注釋

雖然許多軟件工程的書籍常提醒程序員需要防止過多注釋,但這個擔心好象并沒有什么必要。往往程序員更感興趣的是功能實現(xiàn)而非代碼注釋,因為前者更能帶來成就感,所以代碼注釋往往不是過多而是過少,過于簡單。人的記憶曲線下降的坡度是陡得嚇人的,當過了一段時間后再回頭補注釋時,很容易發(fā)生"提筆忘字,愈言且止"的情形。

曾在網(wǎng)上看到過微軟的代碼注釋,其詳盡程度讓人嘆為觀止,也從中體悟到了微軟成功的一個經(jīng)驗。

文章標題:關(guān)于java代碼重構(gòu)6的信息
本文URL:http://muchs.cn/article28/dohsecp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站營銷、網(wǎng)站制作、網(wǎng)站策劃、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化