Я пытаюсь создать библиотеку API для наших веб-сервисов, и мне интересно, возможно ли сделать что-то вроде этого:
abstract class UserRequest(val userId: Int) {
def success(message: String)
def error(error: ApiError)
}
api.invokeRequest(new UserRequest(121) {
override def success(message: String) = {
// handle success
}
override def error(error: ApiError) = {
// handle the error
}
}
Я говорю о передаче параметров анонимномувнутреннего класса, а также переопределяя два метода.
Я чрезвычайно новичок в Scala, и я понимаю, что мой синтаксис может быть совершенно неверным.Я просто пытаюсь придумать хороший дизайн для этой библиотеки, прежде чем я начну ее кодировать.
Я готов принять предложения по этому вопросу, если я делаю это совершенно неправильно, или еслиесть лучший способ.
Идея состоит в том, что API возьмет какой-то объект запроса, использует его для выполнения запроса в потоке через http, а когда ответ получен, каким-то образом передает сигналвызывающая сторона, если запрос был успешным или ошибочным.Функции запроса / ошибки должны выполняться в главном потоке.