【问题标题】:Conditions and method-calling efficiency条件和方法调用效率
【发布时间】:2012-02-22 00:43:54
【问题描述】:
有一个条件来检查是否应该调用一个方法,与调用一个方法并在那里有一个条件来检查它是否应该运行其内容是更快、更慢还是相同?
if (cond) {
doThis();
}
method doThis() {
// do things
}
对
doThis();
method doThis() {
if (cond) {
// do things
}
}
【问题讨论】:
标签:
function
methods
if-statement
【解决方案1】:
这两种方式都不应该有明显的不同。这确实应该基于惯例。如果条件不满足,该方法还能发挥作用吗?然后你应该检查方法中的条件:
doThis();
method doThis() {
if(!cond) throw new InvalidOperationException();
// do things
}
如果方法在条件不满足的情况下仍然可以运行,但是你只想在条件满足时调用方法,那么做方法外的检查:
if(cond) doThis();
method doThis() {
// do things
}