ドメイン駆動
参考にしたもの
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計のためのオブジェクト指向入門
実践に向けたドメイン駆動設計のエッセンス
3つのレイヤー
ポイント
ドメインを隔離する。UIとデータ形式から。生のデータを使わない。結果は加工されたモデルを渡す。
計算、加工、判断のロジックを一箇所に集めること。実現手段の隠蔽。各自の型の定義(基本データ型を使わない)。値オブジェクト。一覧オブジェクト。
(if,list,string,etc)も使わない。
プレゼン層はプレゼンタからドメイン層を使うがドメイン層はプレゼン層をつかわない。
ドメイン層のユースケースはリポジトリを介してデータを受け取るがそれはモデルの形にしてプレゼン層に渡す。
トランスレータはモデルの変換を行う。
業務の関心事にドメインオブジェクトを作り、公開メソッドは業務と関連するものにする。
ルールのクラス化
- Procedure(手順) 状態を持たない
- Policy(ポリシー) ルールの集まり。状態を持たない
- Rule(ルール) 集まって一つのポリシーを作る
集約(アグリゲート)
一緒に使うもの部品をあつめた一つのクラス