Cake Pattern总是需要实现为内部类吗?

时间:2018-01-12 02:32:54

标签: scala oop dependency-injection cake-pattern

我刚刚阅读了Jonas' well-known article about Cake Pattern,类似于:

class UserRepository {
  def authenticate(user: User): User = {
    println("authenticating user: " + user)
    user
   }
  def create(user: User) = println("creating user: " + user)
  def delete(user: User) = println("deleting user: " + user)
}

根据那篇文章,对于使用Cake Pattern,它需要被包装为特征中的内部类,例如:

trait UserRepositoryComponent {
  val userRepository: UserRepository

  class UserRepository {
    ...
  }
}

所以我想知道:

  1. 这是实现蛋糕模式的唯一方法吗?
  2. 如果是这样,是否意味着像UserRepository这样的类必须在设计时考虑到蛋糕模式(以便它们可以包裹在特征中)?
  3. 如果答案是肯定的,是否有任何常见做法可以包括未在基于Cake Pattern的设计的包装器中定义的类? (类似于概念中的适配器)

0 个答案:

没有答案