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度运动了。
并且将其拆分为两种方法在逻辑上似乎不正确。
我是 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度运动了。
并且将其拆分为两种方法在逻辑上似乎不正确。