這是一個有狀態的類,但據說在scala中類應該是無狀態的,並且狀態對象可能在多線程環境中出現問題。那麼有人可以幫助把它變成一個無國籍班嗎?將有狀態類更改爲無狀態
trait SwitchStrategy {
def shouldSwitch: Boolean
}
object Strategies {
def countdown(counts: Int): SwitchStrategy = {
return new SwitchStrategy {
private[this] var count = 0
override def shouldSwitch: Boolean = {
count += 1
return if (count >= counts) {
count = 0;
true
} else false
}
}
}
}
無國籍對象沒有狀態,你需要一個具有狀態但不能改變的不可變對象。 –
我們是否設法回答您的問題? – slouc
@slouc是的,謝謝 – monk