Java 更多方法或方法中的更多功能?

Java more methods or more functionality in a method?

我是 Java 的编程新手,目前正在编写一个移动理论机器人的程序。拥有像

这样的方法会不会更efficient/better练习
public void turn(String direction, double power) { /* code */ }

或喜欢

public void turnLeft(double power) { /* code */ }
public void turnRight(double power) { /* code */ }

完全取决于preference/readability还是有标准?

public void turn(String direction, double power) 存在方向为 String 的问题,因此调用者可以传递无效的值。建议在此处使用 Enum

enum Direction {
  LEFT, RIGHT,...
}

我会说选择一个是主观的...不过我更愿意为每个方向使用一种方法。也许如果枚举实例不止少数,那么只有一种方法是有意义的。如果您添加一个新方向(例如 ZIGZAG),则无需添加新方法(但您的实现仍然需要处理新的 enum/direction)。

考虑呼叫者将如何呼叫并选择更有意义的呼叫。

第二个更具可读性。通常自动描述方法或变量是最好的。

如果您想使用第一种方法,我的提示是使用 Enum 而不是 String。使用 Enum 可以避免输入错误(左 vs 左)并且代码更具可读性。

我建议该方法应该考虑度数以及它是顺时针还是逆时针(只要我们保持在 2d 的上下文中),而不是向左或向右,因此是一个布尔值。

因此方法应具有以下签名,

public void turn(boolean clockwise, double degree, double power) { /* code */ }

这样机器人就不会被限制只能90度运动了。

并且将其拆分为两种方法在逻辑上似乎不正确。