に別の組成物に依存オブジェクトを再利用:どのように私は以下のような2つのサービスクラス...</p> <p>ユーザーサービス持っているケーキのパターン
class UserService { dao: UserGroupDao =>
...
def read(userId: String): Future[Option[User]] = dao.readUser(userId)
...
}
グループのサービス:
class GroupService {dao: UserGroupDao =>
def createGroup(group: Group): Future[Either[String, String]]) = {
val userService = new UserService() with UserMysqlDao
userService.read(group.ownerId) map {
case Some(u) => dao.createGroup(group)
case None => Left("Invalid User!")
}
}
...
}
私はをグループの所有者が有効なユーザーであるかどうかを検証するだけです。そのために、私は、ハードコードされたDao実装、すなわちUserMySqlDaoでuserService.readメソッドを再利用しました。
ここで私の質問は、ハードコードされたDao Implを提供するのではなく、どのように私がgroupserviceのdaoオブジェクトを使うことができるかです。 UserServiceとGroupServiceの型が同じであるためです。
私は、次の
val userService = new UserService with dao
を使用してみましたが、これは失敗しました。私はスカラーには新しいので、なぜこれが失敗したのかは明らかではありません。これが法的でない理由を誰かが明らかにすることができれば助けになるでしょう。私は右のあなたの質問を理解していれば、事前に
感謝:)
ああは...それを得た...それは本当に有益だった...おかげでたくさん... – ArunavaS