如何在Scala中的特征的派生类之间共享项目?

时间:2013-08-03 12:09:51

标签: scala

我有一个特性和很多实现它的类,每个类都有一些方法可以增加所有其他派生类之间的全局或共享同步值,如你所知,在Scala你不能这样做声明静态变量或方法类或特征。在Scala中解决此问题的最佳设计是什么?我应该在所有派生类之间传递一个对象吗?我认为这种方法会降低代码的可扩展性

1 个答案:

答案 0 :(得分:2)

不考虑维持全球状态是否是一个好主意;你可以使用单例对象:

object Foo {
  var state = 0
}
trait Foo

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

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