Q
發行商訂閱斯卡拉
5
A
回答
4
如果你需要的東西很簡單,那麼我建議你做自己的事情,它不應該那麼辛苦。但如果你想要更大的東西,那麼你可以看看Eventbus。它是Java lib,但我也在Scala中使用它。
Scala的一個例子實現在http://jim-mcbeath.blogspot.com/2009/10/simple-publishsubscribe-example-in.html
4
描述一個簡單的參考例子可以http://comments.gmane.org/gmane.comp.lang.scala.user/63002發現:
case class MyEvent(number: Int)
class PrintIt extends Subscriber[MyEvent, Publisher[MyEvent]] {
override def notify(pub: Publisher[MyEvent], event: MyEvent): Unit = {
println("got an event: " + event)
}
}
class RunIt extends Publisher[MyEvent] {
def pub() = publish(MyEvent(12))
}
object Main extends App {
val runIt = new RunIt()
runIt.subscribe(new PrintIt)
runIt.pub()
}
2
你可以在這裏找到一個簡單的EventBus實現。它也做異步事件處理和預定的事件發佈。
https://github.com/hipjim/scala-event-bus
case class Msg(content: String)
val eb = EventBus()
eb.subscribe[Msg] { t =>
println(t.content)
}
for (i <- 1 to 100)
eb.post(Msg(i.toString))
相關問題
- 1. 斯卡拉@運營商
- 2. 斯卡拉 - 訂購清單
- 3. 在斯卡拉閱讀JsValue
- 4. 理解implicits和MongoDB中斯卡拉SRC訂閱
- 5. 斯卡拉鞦韆盒訂閱次數多活動
- 6. 斯卡拉地圖 - >運營商
- 7. 斯卡拉 - 運營商定義
- 8. 訂購的火花(斯卡拉)
- 9. 訂貨與代數類型斯卡拉
- 10. 序列化火花斯卡拉訂單
- 11. 斯卡拉訂購[T]和序列化
- 12. 斯卡拉SeqLike明顯保留訂單?
- 13. 斯卡拉派生的訂單?
- 14. 斯卡拉閱讀和解析JSON
- 15. 斯卡拉請參閱類型參數
- 16. 斯卡拉併發網絡
- 17. 斯卡拉併發處理
- 18. 併發播放斯卡拉
- 19. 斯卡拉泛型發出
- 20. 轉發在斯卡拉
- 21. 斯卡拉在斯卡拉類
- 22. 斯卡拉逐行讀取
- 23. 運行在斯卡拉
- 24. 斯卡拉異步行爲
- 25. 火花斯卡拉運行
- 26. 斯卡拉未來執行
- 27. 斯卡拉,執行期貨
- 28. 卡夫卡與斯卡拉
- 29. 斯卡拉
- 30. 在斯卡拉
嗯,我已經看到了吉姆McBeath的教程,但實際上我在尋找的規模出版商特徵的實現(http://www.scala-lang.org/api /2.7.1/scala/collection/mutable/Publisher.html) – user485659
我也沒找到。什麼阻止了你的實現?發佈者只會發佈一種事件。但是如果這個話題引起你的興趣,你可以從Ingo Maier,Tiark Rompf,Martin Odersky看看[Deprecating the Observer Pattern](http://lamp.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf)。 – hellectronic
其實我正在尋找一種方法來監視一個類:只要它的任何方法完成,我想要一些監視器類來捕獲事件並做一些事情。所以我正在尋找一種發佈者類的每種方法在完成時自動發佈的方式。 – user485659