DAY27@浙大疏锦行
2025/12/25 5:37:45
在领域模型中,我们可以通过定义一些属性来验证业务规则。以账户(Account)模型为例,首先来看账户的抽象定义以及相关代数数据类型:
import java.util.{ Date, Calendar } object common { type Amount = BigDecimal def today = Calendar.getInstance.getTime } import common._ case class Balance(amount: Amount = 0) sealed trait Account { def no: String def name: String def dateOfOpen: Option[Date] def dateOfClose: Option[Date] def balance: Balance } final case class CheckingAccount (no: String, name: String, dateOfOpen: Option[Date], dateOfClose: Option[Date] = None, balance: Balance = Balance()) extends Account final case class SavingsAccount (no: String, name: String, rateOfInterest: Amount, dateOfOpen: Option[Date], dateOfClose: