Play를 개발 중입니다! 2.2 Slick 2.0을 사용한 스칼라에서의 애플리케이션. 이제 데이터 액세스 측면을 다루면서 Cake Pattern을 사용하려고한다. 유망한 것처럼 보이지만 실제로 뭔가 간단한 것을 성취하기 위해 엄청난 양의 클래스/특성/객체를 작성해야 할 필요가있는 것 같습니다. 그래서 나는 이것에 대해 약간의 빛을 사용할 수 있었다. User
개념은 매우 간단한 예를 촬영스칼라 슬릭 케이크 패턴 : 9000 클래스 이상?
, 나는 그것을 이해하는 방식이 우리가해야
case class User(...) //model
class Users extends Table[User]... //Slick Table
object users extends TableQuery[Users] { //Slick Query
//custom queries
}
을 지금까지 완전히 합리적이다. 이제 우리는 "케이크 패터닝"UserRepository
을 추가
trait UserRepository {
val userRepo: UserRepository
class UserRepositoryImpl {
//Here I can do some stuff with slick
def findByName(name: String) = {
users.withFilter(_.name === name).list
}
}
}
우리가 가지고 UserService
:
trait UserService {
this: UserRepository =>
val userService: UserService
class UserServiceImpl { //
def findByName(name: String) = {
userRepo.findByName(name)
}
}
}
이제 우리는 객체에이 모든 것을 섞어 :
object UserModule extends UserService with UserRepository {
val userRepo = new UserRepositoryImpl
val userService = new UserServiceImpl
}
UserRepository
은 정말로 유용합니까? 나는Users
매끄러운 개체에 사용자 지정 쿼리로findByName
을 쓸 수 있습니다.Customer
에 대해 이와 같은 다른 클래스 집합이 있다고 가정하고이 중 일부를UserService
기능에 사용해야합니다.
내가 수행해야합니다
CustomerService {
this: UserService =>
...
}
또는
CustomerService {
val userService = UserModule.userService
...
}
어디에서 9000을 얻었습니까? – Blankman
@Blankman http://knowyourmeme.com/memes/its-over-9000 – user1498572