常见案例类变量

时间:2015-02-13 14:31:47

标签: scala case-class

有没有人有任何想法/更好的方法来处理跨越多个案例类的公共字段...例如我有以下案例类;

case class Customer(
    name: String,
    refId: String = ReferenceIdGenerator.generateRefId("CUSTOMER"),
    createdAt: DateTime = DateTime.now,
    updatedAt: DateTime = DateTime.now,
    id: Option[Long] = None)

在我的示例应用程序中,每个“模型/域”案例类中重复最后四个变量。有没有更好的方法来删除常见的样板代码?

一种想法是创建一个“通用”案例类,并且至少样板代码是有限的,例如;

case class CommonFields(refId: String...etc)
case class Customer(name: String, common: CommonFields)

思想?

2 个答案:

答案 0 :(得分:4)

  

一种想法是创造一个共同的"案例类和至少样板代码是有限的,例如

是的,这是正确的解决方案,假设这适用于您用于与数据库交互的任何内容。如果您使用的是Slick,请参阅Extending SLICK Tables in a DRY manner

答案 1 :(得分:-3)

这些很常见只是巧合,所以这既不是样板也不是重复的代码。