图书馆的Akka Actor Customization

时间:2017-04-03 13:17:52

标签: scala parameters akka customization actor

我想创建一个将被其他人使用和配置的库,使用akka actor。

我想创建一个Repository actor,库用户将注入一种类型的存储,如“MemoryDatabase”或“FileDatabase”,或任何扩展定义的类或actor的东西(参见问题2)。

1)用户指定选项(包括他自己创建的选项)的最佳方式是什么?

2)在这种情况下,“MemoryDatabase”应该是存储库的actor子节点,还是普通类作为Repository actor的字段/属性?

谢谢!

-Jojolepro

编辑: 我想制作一个看起来像

的演员
class Repository extends Actor{

 val repoType:DataStorageType = ...

 def receive:Receive={}

}

我想知道这种库的最终用户指定repoType字段的最佳方式,考虑到Repository已经在预定义的actor层次结构中。

1 个答案:

答案 0 :(得分:0)

这取决于您是希望用户放入具体实例还是仅放入类型。忽略你可以使用的任何类型的DI系统,我只是在启动actor时通过props将具体实例传递给actor的构造函数但是那将取决于具体的线程安全实例,因为不一定只有那个actor会管理它。如果您希望actor拥有存储库,请让用户传递工厂实例或键入props,从而输入构造函数。