一个类实现了一个计算某个值的公共函数。在计算过程中,该函数会创建我也想要检索的临时数据。
我可以添加一个类成员来存储我在函数完成后可以获得的数据,或者给函数另一个参数,以便被调用者必须处理它。所以它基本上是
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类中附加参数的函数,我不知道......
还有其他解决方案吗?如果没有,你会选择哪两个?为什么?
答案 0 :(得分:10)
听起来你正在努力解决多输出功能问题。最好的解决方案是创建一个单独的类来表示此函数的返回值,并保存Output和TempData对象。然后你可以干净地返回这个类的实例。
答案 1 :(得分:0)
从这里说起来真的很难,如果不是不可能的话。你应该问问自己对象是什么。
“TempData”是你班A的一些特色吗?如果你有一个对象A,你会期望它能告诉你“TempData”是什么吗?那么它应该作为一个成员。这可能更多地与OO设计有关,然后与您当前的情况有关,尤其是对于名为“A”
的类