成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

重構(gòu)-改善既有代碼的設(shè)計(五)--重構(gòu)列表

davidac / 2393人閱讀

摘要:什么是重構(gòu)列表重構(gòu)方法需要以一種特定的格式記錄下來。這些重構(gòu)手法到底有多成熟本書中提到的重構(gòu)手法第章。做法創(chuàng)造新函數(shù),以用途命名提煉代碼到函數(shù)中檢查變量名是否符合規(guī)范在源函數(shù)中,將被提煉代碼替換為函數(shù)引用測試范例重構(gòu)前重構(gòu)后

什么是重構(gòu)列表

重構(gòu)方法需要以一種特定的格式記錄下來。按照格式記錄下來的重構(gòu)方法的集合叫重構(gòu)列表

重構(gòu)的記錄格式

每個重構(gòu)手法可分為5個部分:

名稱

構(gòu)建重構(gòu)詞匯列表,名稱當(dāng)然是很關(guān)鍵的了,要充分的表達(dá)出重構(gòu)的核心關(guān)鍵;

概要

介紹重構(gòu)手法的功能,以及應(yīng)用場景;便于我們查找重構(gòu)手法;包括三個部分:

一句話介紹重構(gòu)能解決的問題

一段簡短陳述,介紹你應(yīng)該做的事

一副速寫圖,簡單展現(xiàn)重構(gòu)前后示例,可以是一段代碼或UML圖

動機(jī)

介紹為什么要用以及什么情況下要用這種重構(gòu)手法;

做法

簡明扼要的介紹怎么一步步實現(xiàn)這種手法;

A.做法出自我的筆記,這些筆記是為了我在一段時間不做重構(gòu)后還記得怎么做。如果清楚知道該使用哪個重構(gòu),但不知道具體步驟可以查看做法;但如果是初次使用的話,還 要結(jié)合范例。

范例

以一個簡單的例子說明如何實現(xiàn)這種手法;

尋找引用點

很多重構(gòu)需要找到一個字段,一個方法,一個類的所有引用點。使用文本查詢工具.比如idea的文本查詢和代碼預(yù)編譯。

這些重構(gòu)手法到底有多成熟

本書中提到的重構(gòu)手法(第3章)。都是作者試過的。但是不能一本不變。依具體情況具體使用

demo

名稱:提煉函數(shù)
概要:你有一段代碼可以被組織在一起并獨立出來。將這段代碼放進(jìn)一個獨立函數(shù),并讓函數(shù)名稱解釋該函數(shù)的用途。

void printOwing() {   
    //print banner  
    System.out.println(“*********”);  
    System.out.println(“Banner”);  
    System.out.println(“*********”);  
    //print details  
    System.out.println ("name: " + _name);   
        System.out.println ("amount " + getOutstanding());   
}   

重構(gòu)后
void printOwing()  {  
    printBanner();   
    printDetails(getOutstanding());   
} 
Void printBanner()  {  
    //print banner  
    System.out.println(“*********”);  
    System.out.println(“Banner”);  
    System.out.println(“*********”);  
}  
void printDetails (double outstanding)   {   
    System.out.println ("name: " + _name);   
    System.out.println ("amount " + outstanding);   
}
動機(jī)

過長的函數(shù)或者一段需要注釋才能讓人理解用途的代碼,就應(yīng)該將這段代碼放進(jìn)一個獨立函數(shù)中。簡短而命名良好的函數(shù)的好處:
1)如果每個函數(shù)的粒度都很小,那么函數(shù)被復(fù)用的機(jī)會就更大;
2)這會使高層函數(shù)讀起來就想一系列注釋;
3)如果函數(shù)都是細(xì)粒度,那么函數(shù)的覆寫也會更容易些。

做法

創(chuàng)造新函數(shù),以用途命名

提煉代碼到函數(shù)中

檢查變量名是否符合規(guī)范

在源函數(shù)中,將被提煉代碼替換為函數(shù)引用

測試

范例
 重構(gòu)前
 void printOwing() {   
        //print banner  
        System.out.println(“*********”);  
        System.out.println(“Banner”);  
        System.out.println(“*********”);  
        //print details  
        System.out.println ("name: " + _name);   
            System.out.println ("amount " + getOutstanding());   
    }   

重構(gòu)后
void printOwing()  {  
    printBanner();   
    printDetails(getOutstanding());   
} 
Void printBanner()  {  
    //print banner  
    System.out.println(“*********”);  
    System.out.println(“Banner”);  
    System.out.println(“*********”);  
}  
void printDetails (double outstanding)   {   
    System.out.println ("name: " + _name);   
    System.out.println ("amount " + outstanding);   
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69712.html

相關(guān)文章

  • 重構(gòu)-改善既有代碼設(shè)計》讀書筆記-重構(gòu)

    摘要:重構(gòu)改善既有代碼設(shè)計動詞使用一系列重構(gòu)手法,在不改變軟件可觀察行為的前提下,調(diào)整其結(jié)構(gòu)。修補(bǔ)錯誤時重構(gòu)代碼時重構(gòu)怎么重構(gòu)關(guān)于代碼的重構(gòu)技巧參考重構(gòu)改善既有代碼設(shè)計讀書筆記代碼篇個人博客 重構(gòu)定義 名詞 對軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性,降低其修改成本。——《重構(gòu)-改善既有代碼設(shè)計》 動詞 使用一系列重構(gòu)手法,在不改變軟件可觀察行為的前提下,...

    ermaoL 評論0 收藏0
  • 讀書筆記《重構(gòu) 改善既有代碼設(shè)計

    摘要:重構(gòu)在不改變代碼的外在的行為的前提下對代碼進(jìn)行修改最大限度的減少錯誤的幾率本質(zhì)上,就是代碼寫好之后修改它的設(shè)計。重構(gòu)可以深入理解代碼并且?guī)椭业?。同時重構(gòu)可以減少引入的機(jī)率,方便日后擴(kuò)展。平行繼承目的在于消除類之間的重復(fù)代碼。 重構(gòu) (refactoring) 在不改變代碼的外在的行為的前提下 對代碼進(jìn)行修改最大限度的減少錯誤的幾率 本質(zhì)上, 就是代碼寫好之后 修改它的設(shè)計。 1,書中...

    mdluo 評論0 收藏0
  • 重構(gòu)-改善既有代碼設(shè)計(二) --重構(gòu)原則

    摘要:改進(jìn)代碼設(shè)計的一個重要原則就是消除重復(fù)代碼使軟件更容易被理解優(yōu)秀的代碼能夠讓接收你代碼的付出更少的學(xué)習(xí)成本。重構(gòu)更容易找到重構(gòu)能加深對代碼的理解??梢灾貥?gòu)的情況添加功能時可以重構(gòu)。說明你沒有發(fā)現(xiàn)代碼的錯誤。需要重構(gòu)復(fù)審代碼時可以重構(gòu)。 為何重構(gòu) 重構(gòu)不是銀彈,但是幫助你達(dá)到以下幾個目的 改進(jìn)軟件設(shè)計 不良的程序需要更多的代碼。而代碼越多,正確的修改就越困難。改進(jìn)代碼設(shè)計的一個重要原則就...

    myshell 評論0 收藏0
  • 重構(gòu)-改善既有代碼設(shè)計(一)--重構(gòu),第一個案例

    摘要:并根據(jù)目錄選讀第章重構(gòu),第一個案例這是只是一個方法。絕大多數(shù)情況下,函數(shù)應(yīng)該放在它所使用的數(shù)據(jù)的所屬對象內(nèi)最好不要在另一個對象的屬性基礎(chǔ)上運(yùn)用語句。 什么是重構(gòu) 在不改變代碼外在行為的前提下,對代碼做出修改以改進(jìn)程序內(nèi)部的結(jié)構(gòu)簡單地說就是在代碼寫好后改進(jìn)它的設(shè)計 誰該閱讀這本書 專業(yè)程序員(能夠提高你的代碼質(zhì)量) 資深設(shè)計師和架構(gòu)規(guī)劃師(理解為什么需要重構(gòu),哪里需要重構(gòu)) 閱讀技巧...

    acrazing 評論0 收藏0
  • 重構(gòu)---改善既有代碼設(shè)計》之簡化條件表達(dá)式

    那有什么天生如此,只是我們天天堅持。 本篇文章主要講解 《重構(gòu)---改善既有代碼的設(shè)計》 這本書中的 第九章簡化條件表達(dá)式中 的知識點, Decompose Conditional(分解條件表達(dá)式) 問題:你有一個復(fù)雜的條件(if、then、else) 語句 解決:從if、then、else三個段落中分別提煉出獨立函數(shù) //重構(gòu)前 if (date.before(SUMMER_START) |...

    Cheng_Gang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<