2013-08-03 22 views
1

我有一個特性和很多實現它的類,每個類都有一些方法應該增加所有其他派生類之間的全局或共享同步值,正如你所知,在Scala中你不能聲明靜態變量或方法類或特徵。在Scala中解決這個問題的最佳設計是什麼?我應該在所有派生類之間傳遞一個對象嗎?我認爲這種做法會降低代碼的可擴展性如何在Scala中的特徵的派生類之間共享項目?

回答

2

不考慮維護全局狀態是否是一個好主意;你可以使用一個單獨的對象:

object Foo { 
    var state = 0 
} 
trait Foo 

class Bar extends Foo { 
    Foo.state += 1 
} 

class Baz extends Foo { 
    Foo.state -= 1 
} 
+0

是的,我知道,但我尋找一個更好的辦法 – Pooya

+1

@Pooya而且它是什麼,你不喜歡呢? –