我是Scala的新手,并试图了解我应该如何为这些对象建模。
这里的目标是将一个对象存储到数据库中。要存储的数据将来自POST。该帖子不包含将保留的所有数据。
我的OO方面说要用公共字段建立基类。扩展它表示发布的数据,并扩展它以表示持久化的对象。但是,似乎案例类被用于此类事情,并且不鼓励/弃用案例类继承/错误,所以我不太确定我应该做什么。
此外,重复感觉非常......错。
我希望有经验的人可以提供一些有关如何处理此问题的见解。
abstract class TestBase(val someField: String)
case class TestPost(override val someField: String) extends TestBase(someField)
case class Test(testId: String, override val someField: String) extends TestBase(someField)
此外,如果我继续使用此方法,您将如何将字段从TestPost实例复制到Test实例?
答案 0 :(得分:0)
虽然你正在做OOP而且你可以在Scala中你也应该按功能的方式处理,函数式编程声明你的对象应该是不可变的,case类就是它们的用途,它们代表了构建的值对象模式正确的语言。我的建议是使用构图。
case class A(field : Field)
case class B(a : A, moreFields : Fields)
我不确定您是如何尝试将内容保存到数据库中的。