0
我有,我希望擴展類,它由名稱參數在它的構造函數的情況下:擴展一個類時服用的父類的構造函數使用儲值一個通過名字參數
class Extension(something: Something)
extends Base(something.doSomething(something.getSomething(false))
class Base(expression: => Result) {
...
}
但是,致電something.getSomething(false)
會導致副作用,因此無法多次調用。
我怎麼能存儲something.getSomething(false)
結果,將它傳遞給父類的構造函數之前?一個既考慮參數和生成的參數,和一個只需要參數,用戶應該提供 -
的代碼需要重新設計,這樣的突變和繼承避免;這通常提供更好,更容易與實現一起工作。 – 2014-11-05 12:59:42
@ErikAllik在這種情況下,它不是突變,而是因爲它涉及文件存取 - 呼叫只能在文件的開頭,這不再是這種情況處決後。但是,在這種情況下避免繼承可能是一個很好的建議。無論哪種方式,我覺得這應該是可能的,而且是。 – 2014-11-05 13:03:49
文件訪問*爲*突變:),你可以很容易地解決,通過移動IO位核心邏輯之外,或者通過使用緩存,或一些其他手段。 – 2014-11-05 13:06:26