【发布时间】:2015-04-16 11:55:25
【问题描述】:
在编写代码时,有时我会遇到这样的情况,我需要选择是创建一个单独的方法(优点是我以后可以使用自己的语法)还是实现已经存在的复杂方法(也更少的代码行数)。
以下是使用不同编程语言(Objective-C 和 Java)来解释问题的示例。
Objective-C 示例:
-(double) maxValueFinder: (NSMutableArray *)data {
double max = [[data valueForKeyPath:@"@max.intValue"] doubleValue];
return maxValue;
}
然后:
...
double max = [self maxValueFinder:data];
...
或者只是每次尝试调用:
...
double max = [[data valueForKeyPath:@"@max.intValue"] doubleValue];
...
Java 示例:
public static double maxFinder (ArrayList<Double> data) {
double maxValue = Collections.max(data);
return maxValue;
}
然后:
...
double max = maxFinder(data);
...
或者只是每次尝试调用:
...
double max = Collections.max(data);
...
或更复杂的情况,使我的问题更清晰:
//using jsoup
public static Element getElement(Document content){
Element link = content.getElementsByTag("a").first();
return link;
}
或每次:
...
Element link = content.getElementsByTag("a").first();
...
哪种方法消耗更少的资源(性能、内存)或相同?
【问题讨论】:
-
我强烈建议您阅读以下内容:c2.com/cgi/wiki?PrematureOptimization
标签: java objective-c performance methods