这应该是班级成员吗?

时间:2011-04-18 19:22:52

标签: java coding-style

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

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

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

VS

class B {
    ...
    public Output function(Input input, TempData fillme) {
        // calculate return value and save temp data to fillme
    }
}

我的问题:这两个版本对我来说都不对。临时数据实际上并不属于A类,而且B类中附加参数的函数,我不知道......

还有其他解决方案吗?如果没有,你会选择哪两个?为什么?

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

从这里说起来真的很难,如果不是不可能的话。你应该问问自己对象是什么。

“TempData”是你班A的一些特色吗?如果你有一个对象A,你会期望它能告诉你“TempData”是什么吗?那么它应该作为一个成员。这可能更多地与OO设计有关,然后与您当前的情况有关,尤其是对于名为“A”

的类