Java性能 - 良好实践(使用引用)

时间:2014-09-23 09:29:03

标签: java

这是我正在贡献的项目代码的基本结构:

protected ModelAndView showForm(ActionContext ctx) throws Exception {
    Command cmd = ctx.getCommand();
    SubCommand subCmd = cmd.getSubCommand();
    doSmth(cmd, subCmd);
    doSmthElse(ctx);
    doSmthElse2(ctx);
}

并且每个doSmthElse(ctx)都以

开头
Command cmd = ctx.getCommand();
SubCommand subCmd = cmd.getSubCommand();

对我而言,目前尚不清楚为什么它看起来像这样,应该改变它在doSmth中的样子。如果我错了,请纠正我,但我认为它现在也会变慢。

2 个答案:

答案 0 :(得分:1)

如果getCommandreturn command;一样简单,那么就不会有任何性能差异。

从设计的角度来看,如果doSmthElse只需要子命令来完成它的工作,那么你确实可以传递它所需要的东西,只传递它需要的东西,而不是一个"泛型"包含不必要信息的上下文对象 - 它也允许更容易的测试。如果是这种情况,请致电doSmthElse(subCmd)

但这意味着如果您在以后需要更多信息,则需要更改方法签名。

换句话说,通常,它取决于......

答案 1 :(得分:0)

我想说的重点不是性能本身,但它是一个概念/清晰的事情。如果命令和子命令总是在一起,那么用doSmth(cmd, subCmd)替换doSmth(ctx)会更有意义。

关于性能,如果对象是预构建的(也就是说,它没有在getter调用上重建),那么对它的引用数量并不重要。