日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

重构手法(一)之重新组织函数

發布時間:2025/3/21 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重构手法(一)之重新组织函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Extract Method(提煉函數)

重構前:

void printOwing(double amount){printBanner();//print details System.out.println("name:" + _name);System.out.println("amount" + amount); }

重構后:

void printOwing(double amount){printBanner();printDetails(amount); }void printDetails(double amount){System.out.println("name:" + _name);System.out.println("amount" + amount); }

2、Inline Method(內聯函數)

重構前:

int getRating(){return (moreThanFiveLateDeliveries()) ? 2 : 1; }boolean moreThanFiveLateDeliveries(){return _numberOfLateDeliveries > 5; }

重構后

int getRating(){return (_numberOfLateDeliveries > 5) ? 2 : 1; }

3、Inline Temp(內聯臨時變量)

重構前:

double basePrice = anOrder.basePrice(); return (basePrice > 1000);

重構后:

return (anOrder.basePrice() > 1000);

4、Replace Temp with Query(以查詢取代臨時變量)

重構前:

double basePrice = _quantity * _itemPrice; if(basePrice > 1000)return basePrice * 0.95; elsereturn basePrice * 0.98;

重構后:

if(basePrice() > 1000)return basePrice() * 0.95; elsereturn basePrice() * 0.98;double basePrice(){return _quantity * _itemPrice; }

5、Introduce Explaining Variable(引入解釋性變量)

重構前:

if((platform.toUpperCase().indexOf("MAC") > -1) &&(browser.toUpperCase().indexOf("IE") > -1) &&wasInitialized() && resize > 0) {//do something }

重構后:

final boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1; final boolean isIEBrowser = browser.toUpperCase().indexOf("IE) > -1; final boolean wasResized = resize > 0;if(isMacOs && isIEBrowser && wasInitialized() && wasResized){//do something }

6、Split Temporary Variable(分解臨時變量)

重構前:

double temp = 2 * (_height + _width); System.out.println(temp); temp = _height * _width; System.out.println(temp);

重構后:

final double perimeter = 2 * (_height + _width); System.out.println(perimeter); final double area = _height * _width; System.out.println(area);

7、Remove Assignments to Parameters(移除對參數的賦值)

重構前:

int discount(int inputVal, int quantity, int yearToDate){if(inputVal > 50)inputVal -= 2; }

重構后:

int discount(int inputVal, int quantity, int yearToDate){int result = inputVal;if(inputVal > 50)result -= 2; }

8、Replace Method with Method Object(以函數對象取代函數)

9、Substitute Algorithm(替換算法)

重構前:

String foundPerson(String[] people){for(int i = 0; i < people.length; i++){if(people[i].equals("Don")){return "Don";} if(people[i].equals("John")){return "John";} if(people[i].equals("Kent")){return "Kent";} }return ""; }

重構后:

String foundPerson(String[] people){List candidates = Arrays.asList(new String[] {"Don", "John", "Kent"});for(int i = 0; i < people.length; i++){if(candidates.contains(people[i]))return people[i];} return ""; }

?

轉載于:https://www.cnblogs.com/dongerlei/p/5162929.html

總結

以上是生活随笔為你收集整理的重构手法(一)之重新组织函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。