LoginSignup
1
0

目標

・ふわっとした理解のDDDについてエヴァンス本を通して体系的に学習する
・各章の要約をアウトプットすることで知識を定着させる

前回の記事

第11章の内容は以下でまとめています。

(※現在工事中)

【第12章】デザインパターンをモデルに関係づける

ドメイン駆動設計でデザインパターンを利用するためには以下2点のレベルで考える必要がある。
・コードで用いられる技術的なデザインパターン
・モデルで用いられる概念的なパターン

ストラテジー

アルゴリズムをカプセル化し、さらにそのファミリーを定義することで、それぞれのアルゴリズムを交換可能にする。

・プロセスの中で変化する部分を、独立したストラテジーオブジェクトとして定義する。
・ルールと振る舞いを切り離す。
・ルールや置き換え可能なプロセスはストラテジーパターンにしたがって定義する。

コンポジット

オブジェクトを組み立てて、部分と全体の階層を表すツリー構造を作ること。

・コンポジットを構成するすべてのメンバを含む抽象型を定義する。(abstractクラス)
・情報を戻すメソッドはコンテナに実装され(Override)、内容についての集約された情報を戻す。
・リーフノードはそれぞれ独自の値に基づいてメソッドを定義する。
・クライアントは抽象型クラスを扱い、それ以下のコンテナやリーフを区別しない。

まとめ

ドメイン駆動設計で用いられるデザインパターンについて学ぶことができた。
本書では紹介されなかった他のデザインパターン(GoFなど。。。)も今後学んでいきたい。

次は「より深い洞察へ向かうリファクタリング」を学んでいく。
次の13章で第3部はラストなので気合を入れていこう。

参考になったらいいねやコメントおまちしています!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0