DDD
DDDの個人的なメモ
基本
テストから作成
Repositoryはドメインを作成するときのみ作成
Serviceの入れ子はOK、一つのServiceですべてやらなくても良い
ドメイン作成時に作るもの
ドメインクラス
要素はvalueObjectとして定義する
作成時はofメソッドを用意する
入り口用Dto
restのディレクトリに作成
画面側のJsonに合わた要素のDtoクラス
要素は基本String型やint型
toDomainメソッドを用意してService用ドメインに変換するようにする
Service用モデル
Serviceのディレクトリに作成
ControllerからServiceに戻す時にDtoから変換する
Serviceにドメインクラスに変換するtoDomainメソッドを用意
Entity
DBに送受のためのクラス
要素はDBに合わせるの
Queryモデル
Queryモデルのディレクトリに作成
RepositoryからServiceはドメインクラスを使うが、ServiceからControllerに戻す時はQueryモデルでラップする
Serviceにラップ用のメソッドを用意
出口用Dto
restのディレクトリに作成
画面側の受け取りインターフェースに合わた要素のDtoクラス
要素は基本String型やint型