您应该在代码中使用相关变量吗?

Should you use related variables in your code?

最近我想知道在代码中使用彼此相关的变量(例如 a = 2 * b)是否是一种不好的做法。一个具体的例子是欧元和美元。假设我们有一个人 class,他有一些欧元和美元余额(编码为 java 以供演示):

class Person {

    float balanceInEuros;
    float balanceInDollars;

    public Person(...) { // Problem 1 (see down below)

    }
}

问题 1:您需要在构造函数参数中放入什么?这两个变量都是 float 所以我们无法区分不同的构造函数(java 可以有多个构造函数用于 class,只要它们有不同类型的参数)。为了解决这个问题,我们可以为 return 一个 Person 创建两个单独的方法,例如:

public static createPersonWithEuros(float euros) {
    Person person = new Person();
    person.setEuros(euros);
    return person;
}
// Similar for dollars...

问题 2:现在美元没有价值,所以方法 person.getDollars() 会导致错误。当然,这可以通过在 createPersonWithEuros() 方法中添加一行来再次修复:person.setDollars(Person.EXCHANGE_RATE_EURO_DOLLAR * euros) 或类似的内容。


的参数

反对意见

什么更好,为什么?

编辑:我关心的另一件事是我用 OO 语言编写了这个特定示例。例如,如果这是用 java 脚本编写的怎么办?

通过创建一个具有金额和货币的单独 class Balance,您可以使用带有 'balance' 参数的单个构造函数并使用欧元、美元、英镑等随心所欲。所有转换都转到 Balance class 并且 Person 可以使用余额而不考虑货币、转换率等。