cake-pattern

    4热度

    1回答

    我想知道在Scala中使用函数和DI模式的区别。我想出了以下的理解,我想知道这种理解是否正确。 让我们来想象一个依赖关系图。 1)如果我们使用函数作为构建块,那么该图包含函数作为节点和参数作为边。 2)如果我们使用traits作为构建块(如在Cake中),那么该图包含作为节点的特征和作为边的抽象成员。 那么Cake模式的目的是什么?为什么2比1好?这是当然颗粒化。图-1可以通过将函数分组成特征来简

    5热度

    1回答

    我想了解蛋糕模式。 我在阅读this的博客。 从博客的示例代码: case class User (name:String,email:String,supervisorId:Int,firstName:String,lastName:String) trait UserRepository { def get(id: Int): User def find(usernam

    3热度

    1回答

    我试图找出通过蛋糕模式混合特质和通过老式延伸混合它们之间的区别是什么。这里是我的两个例子: 威盛蛋糕 trait N { def foo() } trait M { this: N => def bar() } class U extends M with N { def bar() =() def foo() =() } 什么蛋

    0热度

    1回答

    我想实现像代码蛋糕的图案,但我得到: Error:(47, 36) illegal inheritance; self-type app.server.im.Im_Api_Service_Impl.type does not conform to app.server.im.Persistence[app.server.im.State.State]'s selftype app.server.

    0热度

    1回答

    在Internet上发现的所有与Cake patter相关的文章中,我都看到了单个级别的依赖关系,这对我来说很清楚。 但是当我开始使用它时,我遇到了一个问题,我不能仅在高级别类中使用服务,而且我需要将它混合到多个位置。 例如,如果我有一个服务,并且此服务与其他一组服务一起工作,并且此组中的每个服务都使用一个数据库,我尝试不直接访问来自这组低级服务的数据库。我仅在高级服务中完成所有数据库查询。 但在

    1热度

    1回答

    我读过一些关于Scala的蛋糕模式的文章,基本理解它。以下是我从这篇文章复制了一些示例代码: 组件: case class User(username:String, password: String) trait UserRepositoryComponent { val userRepository: UserRepository class UserReposito

    1热度

    1回答

    我有下面的类层次结构: abstract class Event(val timeStamp:Long,val id:Long) case class StudentEvent(override val timeStamp:Long, override val id:Long, firstName:String,lastName:String) extends Event(t

    0热度

    2回答

    我有一个像下面两个服务类... 用户服务: class UserService { dao: UserGroupDao => ... def read(userId: String): Future[Option[User]] = dao.readUser(userId) ... } 集团服务: class GroupService {dao: UserGroupDao => def

    0热度

    1回答

    我有一个特点,代表了一些模块,暴露出一些公共方法(觉得服务): trait X { def exposeMe: AService = ... def keepMeHidden: BService = ... } 然后,我有一个Y模块,需要服务从X 。 Y的客户还需要X提供一项服务。但我不希望他们只依赖这一项服务,而要依靠整个X。我想要“出口”一种服务是公开的。 trait

    4热度

    1回答

    我一直在玩蛋糕模式,有一些我不完全理解。 考虑到下面的相同代码: trait AServiceComponent { this: ARepositoryComponent => } trait ARepositoryComponent {} 混合它们的以下方式运行 trait Controller { this: AServiceComponent => } o