Scala值对象层次结构

时间:2014-05-01 14:02:30

标签: scala oop data-modeling

我是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实例?

1 个答案:

答案 0 :(得分:0)

虽然你正在做OOP而且你可以在Scala中你也应该按功能的方式处理,函数式编程声明你的对象应该是不可变的,case类就是它们的用途,它们代表了构建的值对象模式正确的语言。我的建议是使用构图。

case class A(field : Field)
case class B(a : A, moreFields : Fields)

我不确定您是如何尝试将内容保存到数据库中的。

相关问题