【发布时间】:2014-10-09 17:27:35
【问题描述】:
如果这个问题很愚蠢,请原谅我......我是编程新手。我感到困惑的一件事是,我是否应该在每次调用获取某个值的方法时实例化一个新变量,或者保留一个本地副本并更新它。
为了说明,假设我有一个机器人在迷宫中导航。机器人驱动程序操作机器人,必须获取机器人的坐标才能执行一些动作,例如感知障碍物。
public class RoboDriver {
public void senseObstacle() {
int[] position = robot.getPosition();
...
}
}
public class RoboDriver {
int[] robotPositionCopy;
public void senseObstacle() {
this.robotPositionCopy = robot.getPosition();
...
}
}
机器人对象中的位置坐标始终是最新的。因此,如果我想获得更新的位置,这两个示例中哪个更好,为什么?还是没有太大区别?
【问题讨论】:
-
这取决于您需要如何/何时使用这些信息。
-
@DaveNewton 在这种情况下,我只需要在 RoboDriver 尝试感知某些东西时更新坐标。所以每次调用 sense 时,它都需要更新的坐标。
-
你可以同时使用。但是,第二种方法将数组对象保留在内存中的时间通常比局部变量长。
-
@Mohammad 所以在性能方面,第一种方法稍微好一点?
-
@Renren29 那么可能没有理由将其保存在
RoboDriver实例变量中(与第一个示例中的局部变量相反)。
标签: java