title: TaskTitle, val createdAt: DateTime, val finishedAt: Option[DateTime] ) extends Entity[TaskId] { def isFinished: Boolean = finishedAt.nonEmpty def finish(): Task = { if (isFinished) { throw new TaskAlreadyFinished(this) } new Task(id, title, createdAt, Some(DateTime.now)) } } ΤϯςΟςΟͷఆٛྫ &OUJUZ<5BTL*E>Λܧঝ͠ɺΤϯςΟςΟͷಛੑΛ࣋ͨͤΔ