我想编写一个库,客户端可以编写如下代码。它是伪Scala,因为我不知道它是否在语法上可能
class ClientCode {
historical {
override def onTrade() { // historcal processing here}
}
override def onTrade() { // real time processing here }
}
基本上我想做的是将交易数据发送给客户。历史数据和实时数据都有不同的业务规则。从语法上讲,我希望所有内容都由onTrade()处理。我可以做类似以下的事情
override def onTrade() {
if (historical) { } ...
else {}
}
然而,与长期和强制性的实时规则相比,历史规则是简短且可选的,因此我发现上述语法有点麻烦。
答案 0 :(得分:1)
你可以有一个特质
trait Historical extends ClientCode {
override def onTrade() { ... }
}
然后
val c = new ClientCode with Historical
使用被覆盖的onTrade()
。那够了吗?