1

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

4

1 回答 1

2

暂且不考虑维护全局状态是否是一个好主意;您可以使用单例对象:

object Foo {
  var state = 0
}
trait Foo

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

class Baz extends Foo {
  Foo.state -= 1
}
于 2013-08-03T12:12:50.713 回答