如何更好地组织 function2 使用 function1 结果的两个函数?

How to better organize two functions where function2 uses the result of function1?

有两个带有数学计算的函数。他们计算两个可以彼此分开使用的不同值。但是 function2 使用 function1 的值。现在我有这样的东西:

public double Function1()
{
/*...*/
return value1;
}
public double Function2()
{
double someValue = Function1();
/*...*/
return value2;
}

并且如果用户需要获取value1 和value2 之后会有可重复的代码数组。这是必须要解决的吗?可能会出现用户只需要 value2 的情况,所以我不知道如何处理这种重用。

如果 Function2 依赖于 Function1 那么这没问题。

你这样做很好,但如果你真的想改变它,假设 value1 和 value 2 不仅仅存在于函数中,你可以做这样的事情:

private bool function1Called = false;
public double Function1()
{
    /*...*/
    function1Called = true;
    return value1;
}
public double Function2()
{
    double someValue;
    if (!funcion1Called)
    {
        someValue = Function1();
    {
    else
    {
        someValue = value1;
    }
    /*...*/
    return value2;
}