:projectA
でScalaのケーキのパターンとマルチ
trait DBProvider
trait DBTableNamesProvider
trait DefaultDBProvider extends DBProvider
trait DefaultTableNames extends DBTableNamesProvider
trait MyService extends DBProvider with DBTableNamesProvider
object MyService {
def apply() = new MyService with DefaultDBProvider with DefaultTableNames {}
}
私はMyServiceで
PROJECTA(コモンに依存しているを構築したい瓶としてcommon-project
への参照を持っていますプロジェクト):
object MyOtherApp {
trait MyOtherTableName extends DBTableNamesProvider
val MyCustomService = MyService() with MyOtherTableName // will not compile how to reuse the module's MyService() with another implementation of one of the traits?
}
上記は、私はちょうどMyServiceで()の建設を呼び出し、依存関係の一部を上書きすることはできませんコンパイルされません。
これは私がやりたいことですが、別のプロジェクトからMyService()の工場構築がMyProjectATableNamesの独自の実装で適用されることは、scalaでも可能ですか?コードの繰り返しがない場合の推奨方法は何ですか?
「MyService」は特性であり、確かにex匿名でそれを好む傾向がある。また、ケーキのパターンには何も問題はありません。ただし、Playを好きなブロガーの意見には、多分あります。 – Dima