2017-04-03 1 views
0

akkaアクターを使用して、他の人が使用したり設定したりするライブラリーを作りたいと思っています。Akka Actorライブラリーのカスタマイズ

"MemoryDatabase"や "FileDatabase"や定義されたクラスやアクタを拡張するもの(質問2を参照)のような、ライブラリユーザーがストレージのタイプを注入するリポジトリアクタを作りたいと思っています。

1)ユーザーがオプションを指定する最も良い方法は何ですか(作成したオプションを含む)。

2) "MemoryDatabase"はリポジトリのアクタの子であるか、この場合リポジトリアクタのフィールド/プロパティとして通常のクラスであるべきですか?

ありがとうございます!

-Jojolepro

編集: 私はrepoTypeフィールドを指定するために、このようなライブラリーのエンドユーザーのための最善の方法を知ってほしい何

class Repository extends Actor{ 

val repoType:DataStorageType = ... 

def receive:Receive={} 

} 

のように見える俳優を作りたいです、リポジトリが既に定義済みのアクタ階層にあることを考慮してください。

+0

まあ...質問はあまりにも開いており、他のさまざまな要因に応じてそれを行うために少なくとも100の方法が良いはずです。より具体的な質問陳述書を提出しない限り、私たちの大部分はこのことであなたを助けることができません。 –

+0

より具体的に私の質問を編集しました –

答えて

0

これは、ユーザーが具体的なインスタンスに入れるのか、それとも単なるタイプにするのかによって異なります。どのような種類のDIシステムを無視しても、俳優が開始されたときに、具体的なインスタンスを俳優のコンストラクタに渡すだけですが、それは必ずしも俳優がそれを管理するわけではないため、 。アクタがリポジトリを所有するようにするには、ユーザーにファクトリインスタンスを渡すか、propsに、したがってコンストラクタをタイプさせます。

関連する問題