[英]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.