DDD 各役割のメモ書き

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

DDDの各コンポーネントの役割のメモ書き。

Entity

アプリケーション上で登録や変更が行われるような情報を指す。アプリケーションから一意に識別できる必要がある。RDBの行データのようなイメージ。

exp. User, Order, Product

ValueObject

Entityを構成する情報。プリミティブ型でもいいが、ValueObjectにすることで安全性や視認性が高まる。

また、値マクロのようなものを記述する場合もある。

exp. FullName( FirstName + FamilyName ), Emai

DomainService

Entityで振る舞いを記述した場合、おかしなコンテキストになるような振る舞いを記述する。

exp. UserService.exist( user ), ProductService.reserveCount( product )

Factory

Entityを生成する時に特殊な処理が必要になる時、例えば一意な値を生成する処理がコンストラクタに入る、などの時はFactoryを使ってEntityの生成を行う。

Repository

永続化媒体へのEntityのwrite, readを行う。

ApplicationService

ドメインのユースケースを記述する。ロジック自体は、DomainServiceやRepositoryに委譲する。

exp. UserApplicationService.create(), UserApplicationService.remove()