我是 Java 编程的新手,目前正在研究用于移动理论机器人的程序。像这样的方法
会更有效/更好吗?public void turn(String direction, double power) { /* code */ }
或喜欢
public void turnLeft(double power) { /* code */ }
public void turnRight(double power) { /* code */ }
仅是preference/readability
还是有一个标准?
答案 0 :(得分:2)
public void turn(String direction, double power)
的问题是方向为String
,因此调用方可以传递无效的值。建议在此处使用Enum
。
enum Direction {
LEFT, RIGHT,...
}
我会说选择一个主观...但是我更愿意为每个方向选择一种方法。也许枚举实例不止几个,那么只有一种方法是有意义的。如果您添加了一个新的方向(例如ZIGZAG),则无需添加任何新方法(但是您的实现仍需要处理该新的枚举/方向)。
考虑呼叫者将如何呼叫并选择更有意义的呼叫者。
答案 1 :(得分:1)
我建议该方法应取度,而不是向左或向右,并且应取度,无论是顺时针还是逆时针(只要保持在2d的上下文中),就应该是布尔值。
因此方法应具有以下签名
public void turn(boolean clockwise, double degree, double power) { /* code */ }
这样,仅90度的移动就不会限制机器人。
将其拆分为两个方法在逻辑上似乎不正确。
答案 2 :(得分:0)
第二个更具可读性。通常,最好使用自动描述方法或变量。
如果要使用第一种方法,我的提示是使用Enum
而不是String
。使用Enum
可以避免输入错误(左键和左键),并且代码更易读。