這是我實現斯卡拉蛋糕模式早期的嘗試之一:如何改善這種嘗試在蛋糕圖案
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 {
.....
}
這工作,但我在做正確嗎?
你可以離開了'M'成員抽象的特質'VAL L:Model',而且也沒有必要'override'在subtrait –