りゅうじの学習blog

学習したことをアウトプットしていきます。

5/29 ドメイン駆動設計Chapter9 9-1

9-1 ファクトリの目的

自分の身の回りにもたくさんの道具がある

  • 机・椅子・紙・ペン…
    • 道具の扱い方を知っていれば内部構造に詳しくなくても恩恵を受けられる便利さがある
      • オブジェクト指向プログラミングにおけるクラスは道具です

        • メソッドの扱い方さえ知っていれば、内部構造に詳しくなくても扱うことができます

道具は便利なものですが、便利さに比例して複雑な構造を持つことがある

  • コンピュータを例とした場合
    • とても便利なものだが、複雑な構造を持っている
      • 大事なのは、複雑な構造を持っているものは生成過程も複雑であること
        • プログラムにおいても、複雑なオブジェクトは生成過程も複雑になり、ドメインオブジェクトの趣旨をぼやけさせてしまう
          • クライアントにその生成を押し付けるのも良くない
            • 生成処理自体はドメインに意味を持たなかったとしてもドメインを表現する層の責務である

複雑なオブジェクトの生成処理をオブジェクトとして定義する。この生成を責務とするオブジェクトを、道具を作る工場になぞらえて、ファクトリという。

ファクトリはオブジェクトの生成に関わる知識がまとめられたオブジェクトです。

参考

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本