minimal Cake Pattern
導入
Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 #Scala - Qiita
// インターフェース
trait UsesUserRepository {
val userRepository: UserRepository
}
trait UserRepository {
// 略
}
// 実装側
trait MixInUserRepository extends UsesUserRepository {
val userRepository = UserRepositoryImpl
}
object UserRepositoryImpl extends UserRepository {
// 略
}
// 利用側
trait UserService extends UsesUserRepository {
// 略
}
object UserService extends UserService with MixInUserRepository
Minimal Cake Pattern のお作法 #Scala - Qiita
Rustでの実践
Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog