Slide 83
Slide 83 text
ドメインイベント・イベントパブリッシャ
2017-09-09 実践ScalaでDDD 83
package domain.task
case class TaskCreated(
taskId: TaskID,
taskName: TaskName,
authorId: UserId
)
case class DomainResult[ENTITY, EVENT](entity: ENTITY, event: EVENT)
class Author(…) {
// 戻り値として、生成したエンティティと、エンティティが生成されたことを通知するイベントを返す
def createTask(…): DomainResult[Task, TaskCreated] = {
val task: Task = …
DomainResult(task, TaskCreated(task.id, task.name, task.authorId))
}
}
コードサンプル