ビルダーパターンについて

ビルダーパターンについて、
自分が勉強したことをまとめました。

ビルダーパターンとは

ビルダーパターンはオブジェクト生成にかかわるデザインパターンです。
そして、ビルダーパターンを取り入れることで、以下の2つの実現が可能です。

  1. オブジェクトの生成順序、組合わせを、システムの実装から分離できる
  2. 同じ作成過程で異なる表現形式のオブジェクトを生成できます。

そのため、ビルダーパターンを取り入れることで、
最終的に生成したいオブジェクトの内部表現の変更を容易にし、
生成したいオブジェクトのコードを局所化することが可能となります。

ビルダーパターンを適用できる場合

  1. 生成するオブジェクトとオブジェクトを生成するためのアルゴリズムを分離したい場合
  2. 同一の生成過程で、さまざまな表現形式のオブジェクトを生成する必要がある場合

ビルダーパターンの具体的な適用例

①ファイル出力

システムでは、複数のファイル形式を扱う必要がある場合があります。
なぜなら、他システムとのデータ連携をファイル形式で行う場合、
相手側のシステムが既に存在する場合は、相手側のシステムに合わせる必要があるためです。

そして、異なるファイル形式であったとしても、
ファイル出力までの過程はファイル形式によらず、
同一の生成過程となります。

そのため、ビルダーパターンの、
「同じ作成過程で異なる表現形式のオブジェクトを生成する」
という性質と相性が良いと考えられます。

②データ集計

データの集計を行う際は、
データを収集し、収集したデータの計算を行い、
新しいオブジェクトを生成します。

また、集計の内容によっては、複雑な処理が必要となるため、
集計処理のアルゴリズムと集計結果となるオブジェクトを、
分離をしておきたい場合があると思います。

そのため、ビルダーパターンの、
「生成するオブジェクトとオブジェクトを生成するためのアルゴリズムを分離できる」
という性質と相性が良いと考えられます。

③検索条件の組み立て

検索結果を一覧表示する画面では、
入力された複数の条件をもとにデータの検索を行います。

そして、複数の検索画面を持つシステムでは、
それぞれの画面で検索条件を組み立てることとなります。

しかし、複数の検索画面があったとしても、
検索を行うための過程は同じになるはずです。

そのため、ビルダーパターンの、
「同じ作成過程で異なる表現形式のオブジェクトを生成する」
という性質と相性が良いと考えられます。

↓現在こちらの本を参考に絶賛学習中です↓

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン