scala – 使用Actors时在何处定义case类
我用
scala给出了我的第一步.
我创建了一个PhotosLoaderActor,它将负责下载图像并将其保存到缓存中.为此,我将有一个CacheActor和一个DownloadActor. 我的PhotosLoaderActor有这个: override def act() { loop { react { case (caller : Actor,photoToLoad:String) => { // bla bla } 我刚学会了我可以使用case类来使用这样的东西: case class LoadImage(caller: Actor,photoToLoad: String) override def act() { loop { react { case LoadImage(caller,photoToLoad) => { // bla bla } 我的问题是: 我应该在哪里定义案例类? 解决方法
我尝试了一些不同的方法,并决定将所有相关的消息放入一个对象,通常命名为XyzProtocol.
例如: object PhotoProtocol { case class LoadImage(caller: Actor,photoToLoad: String) case class UpdateCache(photoToLoad: String,photo: Photo) case object ClearCache } 我喜欢这种方法有几个原因: >在IDE或ScalaDoc中扫描包含的包只显示一个或几个XyzProtocol对象,而不是乱丢几十条消息. 注意:如果消息纯粹是actor的内部实现细节(例如,自身发送给自身的内部信号),我在actor类的伴随对象中定义消息. PS.我还建议从标准图书馆演员那里搬到Akka. Akka将被添加到Scala 2.10发行版中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |