几个简单代码优化方法
Posted xiaogeformax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个简单代码优化方法相关的知识,希望对你有一定的参考价值。
几个简单代码优化方法
提取代码
提取前
void renderBanner()
if ((platform.toUpperCase().indexOf("MAC") > -1) &&
(browser.toUpperCase().indexOf("IE") > -1) &&
wasInitialized() && resize > 0 )
// do something
提取后
void renderBanner()
final boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1;
final boolean isIE = browser.toUpperCase().indexOf("IE") > -1;
final boolean wasResized = resize > 0;
if (isMacOs && isIE && wasInitialized() && wasResized)
// do something
Inline Temp
内联变量之前,减少代码量,方便查看。
double hasDiscount(Order order)
double basePrice = order.basePrice();
return (basePrice > 1000);
内联变量之后
double hasDiscount(Order order)
return (order.basePrice() > 1000);
Replace Temp with Query
用变量取代查询之前
double calculateTotal()
double basePrice = quantity * itemPrice;
if (basePrice > 1000)
return basePrice * 0.95;
else
return basePrice * 0.98;
用变量之后,读起来更有目的性
double calculateTotal()
if (basePrice() > 1000)
return basePrice() * 0.95;
else
return basePrice() * 0.98;
double basePrice()
return quantity * itemPrice;
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.Empty;
用算法替代之后
string FoundPerson(string[] people)
List<string> candidates = new List<string>() "Don", "John", "Kent";
for (int i = 0; i < people.Length; i++)
if (candidates.Contains(people[i]))
return people[i];
return String.Empty;
以上是关于几个简单代码优化方法的主要内容,如果未能解决你的问题,请参考以下文章