У меня много тематических классов в формате
case class Cluster (id: Pk[Long],
foo: Long,
bar: String,
env: String,
name: String,
deleted: Boolean = false) {
def delete() = Cluster(id, foo, bar, env, name, true)
def updateName(name: String) = Cluster(id, foo, bar, env, name, deleted)
def updateFoo(foo: Long) = Cluster(id, foo, bar, env, name, deleted)
}
Я пытаюсь сделать все мои классы неизменяемыми, то есть методы обновления создают новый экземпляр.
Некоторые из классов имеют гораздо больше членов, и наличие методов обновления, клонирующих объект self с другим значением, может привести к ошибкам.
Есть идеи, как сделать его более эффективным?