如何更好地组织 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;
}
有两个带有数学计算的函数。他们计算两个可以彼此分开使用的不同值。但是 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;
}