Java 这应该是班级成员吗?

Java 这应该是班级成员吗?,java,coding-style,Java,Coding Style,一个类实现了一个计算某些值的公共函数。在计算过程中,该函数创建我也要检索的临时数据 我可以添加一个类成员来存储我在函数完成后可以获得的数据,或者给函数另一个参数,以便被调用方处理它。所以基本上是 class A { TempData member; ... public Output function(Input input) { // calculate return value and save temp data to member } }

一个类实现了一个计算某些值的公共函数。在计算过程中,该函数创建我也要检索的临时数据

我可以添加一个类成员来存储我在函数完成后可以获得的数据,或者给函数另一个参数,以便被调用方处理它。所以基本上是

class A {
    TempData member;
    ...
    public Output function(Input input) {
        // calculate return value and save temp data to member
    }
}
vs

我的问题是:两个版本在我看来都是错误的。临时数据实际上不属于类A和类B中带有附加参数的函数,我不知道


还有别的解决办法吗?如果没有,您会选择这两个选项中的哪一个?为什么?

听起来您正在努力解决多输出函数问题。最好的解决方案是创建一个单独的类,该类表示此函数的返回值,并保存输出和TempData对象。然后您可以干净地返回这个类的一个实例。

如果不是不可能的话,从这个类中说出来是非常困难的。你应该问问自己,这个物体是什么


那么,“TempData”是你的A类课程的一个特征吗?如果您有一个对象A,您希望它能够告诉您什么是“TempData”吗?那么,它应该作为一个成员拥有这一点。这可能更多地与OO设计有关,而与您当前的情况有关,尤其是与名为“A”的类有关。

计算与临时数据之间是否存在1-1关系?是的,您的方法应该返回
输出,这将聚合
TempData
类成员这是我的主要问题:我不希望对象A为我提供该temp数据。对我来说,这只是计算该函数返回值的一个有趣的副产品。
class B {
    ...
    public Output function(Input input, TempData fillme) {
        // calculate return value and save temp data to fillme
    }
}