Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case class User(name: String)
- trait UserRepositoryComponent {
- val userRepository: UserRepository
- class UserRepository {
- def authenticate(username: String, password: String): User = {
- println("authenticating user: " + username)
- User(username)
- }
- def create(user: User) = println("creating user: " + user)
- def delete(user: User) = println("deleting user: " + user)
- }
- }
- trait UserServiceComponent { this: UserRepositoryComponent =>
- val userService: UserService
- class UserService {
- def authenticate(username: String, password: String): User = userRepository.authenticate(username, password)
- def create(username: String) = userRepository.create(new User(username))
- def delete(user: User) = userRepository.delete(user)
- }
- }
- object ComponentRegistry extends UserServiceComponent with UserRepositoryComponent {
- val userRepository = new UserRepository
- val userService = new UserService
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement