[英]Override whole class in java/scala
我有一个已经提供的库,它有两个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)
....
}
}
我想创建自己的回归类,其行为与原始回归完全相同,但使用不同的评估函数。 但是,我能想到的唯一方法就是扩展回归并覆盖整个列车方法。 但它包含了Regression类中的几乎所有逻辑 - 我也可以从头开始编写它!
有没有更好的办法? 例如,每当原始调用EvaluationFunction时,以某种方式告诉我的扩展回归类调用另一个类?
您显示的代码无法编译: data
没有数据类型。
除此之外 - Regression
类的结构很奇怪。 它应该具有可覆盖的EvaluationFunction
。 目前它已经内置到train
方法中。 这就是你需要覆盖(/重写)整个类的原因。 这是类结构的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.