这是我正在贡献的项目代码的基本结构:
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中的样子。如果我错了,请纠正我,但我认为它现在也会变慢。
答案 0 :(得分:1)
如果getCommand
与return command;
一样简单,那么就不会有任何性能差异。
从设计的角度来看,如果doSmthElse
只需要子命令来完成它的工作,那么你确实可以传递它所需要的东西,只传递它需要的东西,而不是一个"泛型"包含不必要信息的上下文对象 - 它也允许更容易的测试。如果是这种情况,请致电doSmthElse(subCmd)
。
但这意味着如果您在以后需要更多信息,则需要更改方法签名。
换句话说,通常,它取决于......
答案 1 :(得分:0)
我想说的重点不是性能本身,但它是一个概念/清晰的事情。如果命令和子命令总是在一起,那么用doSmth(cmd, subCmd)
替换doSmth(ctx)
会更有意义。
关于性能,如果对象是预构建的(也就是说,它没有在getter调用上重建),那么对它的引用数量并不重要。