2017-04-03 47 views
0

我想製作一個將由其他人使用和配置的圖書館,使用akka演員。Akka演員爲圖書館定製

我想創建一個存儲庫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層次結構中。

+0

那麼......問題太開放了,應該有至少100個同樣好的方法來完成這取決於各種其他因素。我很抱歉地通知您,除非您提供更具體的問題陳述,否則我們大多數人將無法在此幫助您。 –

+0

編輯我的問題是更具體 –

回答

0

這取決於您是否希望用戶放入具體實例或僅僅是一個類型。忽略任何一種可以使用的DI系統,我只是在actor啓動時通過props將具體實例傳遞給actor的構造函數,但是這將取決於具體實例是線程安全的,因爲不一定只有那個actor會管理它。如果你想要這個actor擁有這個版本庫,讓用戶把這個工廠實例或者類型傳遞給這個道具以及構造函數。