我有一个已经提供的库,它有两个Scala类:
class EvaluationFunction (data:DataHolder) {
def calculate(params:ParamHolder) = {...}
}
和
class Regression {
def train(data:DataHolder) = {
...
val costFunction = new EvaluationFunction(data)
//find params to minimize costFunction.calculate(params)
....
}
}
我想创建自己的回归类,其行为与原始回归完全相同,但使用不同的评估函数。但是,我能想到的唯一方法就是扩展回归并覆盖整个列车方法。但它包含了回归类中的所有逻辑 - 我也可以从头开始编写它!
有更好的方法吗?例如,每当原始调用EvaluationFunction时,以某种方式告诉我的扩展回归类调用另一个类?
答案 0 :(得分:3)
您显示的代码无法编译:{{1}}没有数据类型。
除此之外 - data
类的结构很奇怪。它应该Regression
可以覆盖。就目前而言,它内置于EvaluationFunction
方法中。这就是你需要覆盖(/重写)整个类的原因。这是类结构的问题。