Во время некоторых простых упражнений по кодированию scala я столкнулся с идеологической проблемой классов классов без параметров и дублирование параметров конструктора.Класс случая без параметров альтернативный
Все началось со следующими два довольно простых классов:
trait Namespace
case class Reply[T](namespace: Namespace, correlation: String, data: Try[T])
abstract class Request(val namespace: Namespace, val id: String = UUID.randomUUID().toString) {
def success[T](data: T) = Reply(namespace, id, Try(data))
def failure(msg: String) = Reply(namespace, id, Failure(new RuntimeException(msg)))
}
Теперь давайте предположим, что у меня есть сущность Post
, и я хочу, чтобы добавить All
класс как команда запросить все записи типа Post
. В моем текущем наборе вверх, было бы легче на самом деле написать следующее:
case class All extends Request(Posts)
Однако в этом случае я получаю компилятор предупреждает, что случае классы без параметров являются устаревшими. Таким образом, можно было бы предложить, чтобы переписать его в следующем:
case object All extends Request(Posts)
Однако в этом случае объект все будет реализованным только один раз вместе с id
области, которые хотели бы избежать , имеющих уникальный идентификатор для каждого запроса.
Не могли бы вы предложить лучший способ представления команды All
, чтобы не было необходимости дублировать аргументы конструктора? ?
Заранее спасибо?
Большое спасибо за ответ – tkachuko