Во многих обучающих программах java об DDD объекты являются изменяемыми объектами.DDD в Scala: Должны ли сущности быть неизменными?
class Product {
private String status;
public void prepare() {
this.status = "Prepearing";
}
}
В приведенном выше примере, готовят метод мутирует внутреннее состояние объекта.
Но в Скале, я бы хотел, чтобы мои объекты неизменяемым:
case class Product(status: String) {
def prepare: Product = {
this.copy(status = "Prepearing");
}
}
Так вместо того, чтобы мутировать объект, я возвращаюсь назад новый объект.
В порядке ли DDD иметь неизменяемые сущности и выше реализации?
Или вы можете рекомендовать лучший подход?
Этот вопрос, вероятно, будет лучше подходит для http://softwareengineering.stackexchange.com – Jubobs