ドメイン駆動設計という設計スタイル
- 26. 顧客の利益 vs 自社の利益
どこで折り合いをつけるかの決め事
Customer
Value
顧客価値 提供する商品、提供するサービス内容の決め事
Customer
Cost
顧客からみたコスト 価格、値引き、特典にからむビジネスルール
Convenience 顧客の利便性 提供方法、提供場所、提供タイミングのビジネスルール
Communication
顧客との
コミュニケーション
顧客とのコミュニケーションに関するビジネスルール
2019/5/11 26
ビジネスルールは、コストの制限、リスク回避の決め事であることが多い
ドメイン層のパッケージ分割の設計パターンのひとつ
- 36. 計算の種類 説明、メソッド例 結果の型
等値判定 isEqual( other ) , notEqual( other ) boolean / enum
大小判定 greaterThan( other ), lessThan( other ), … boolean / enum
加算・減算 同じ型同士の計算 同じ型
乗算 同じ型同士の乗算は意味がないことが多い 別の数値型
除算 同じ型の除算と、異なる型の除算では、意味が異なる 別の数値型
境界 Max, Min の定義 同じ型(の固定値)
列挙の操作 previous(), next() が可能な集合 (循環が可/不可) 同じ型
文字列表現 値の標準的な文字列表現 toString() 文字列型
文字列からの生成 標準的な文字列表現からのオブジェクト生成 parse() 同じ型
単一値の計算・判定ロジック
2019/5/11 36
- 37. 計算の種類 説明、メソッド例 結果の型
等値判定 isEqual( other ) , notEqual( other ) boolean / enum
大小判定 greaterThan( other ), lessThan( other ), … boolean / enum
範囲に含まれる contains( element ), encloses( other ) boolean / enum
範囲が重複する isOverlapped(other) boolean / enum
厳密に隣接する isConnectedTo(other) boolean / enum
境界の値 Max, Min 要素の型
範囲演算 intersect(other), minus(other), add(other) 範囲型
文字列表現 標準的な文字列表現 toString(), show(), describe() 文字列型
範囲型(from-to)の計算・判定ロジック
2019/5/11 37
- 50. 操作の種類 説明、メソッド例 結果の型
サイズ count() int
要素の検査 contains(要素), isEmpty(), notEmpty() boolean / enum
部分集合 select(条件), reject(条件), コレクション
集約演算 sum(), min(), max(), average(), … 集約結果の型
集合演算 insersect(other), minus(other), add(other) コレクション
変換 unique(), sort(), groupBy() コレクション
要素の取り出し first(), last(), at(index) 要素の型
要素の追加 add(), addAll(), append(), insertAt(), … void
文字列表現 show(), describe() 文字列, 文字列[ ]
コレクション操作のカプセル化
2019/5/11 50