これは、Scala Cake パターンを実装する初期の試みの 1 つです。
trait dbConfig {
val m: Model = ???
}
trait testDB extends dbConfig {
override val m = new Model(Database.forURL("jdbc:h2:mem:testdb", driver = "org.h2.Driver"))
m.cleanDB
}
trait productionDB extends dbConfig {
override val m = new Model(Database.forURL("jdbc:postgresql:silly:productionDB", driver = "org.postgresql.Driver"))
}
trait SillySystem extends HttpService with dbConfig {
....
// System logic
....
}
これにより、テスト中に次のようにサービスを使用できます。
class TestService extends SillySystem with testDB {
.....
}
そして、生産のためにこのように:
class ProductionService extends SillySystem with productionDB {
.....
}
これは機能しますが、正しく実行していますか?