読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

第1回 生成に関するパターン Builder

スポンサードリンク

Design Patterns 第1回 生成に関するパターン Builder

デザインパターンの本を買いましたが、
コードが断片化して書かれているためか理解できず……。
そんなとき、海外のサイトでいいサンプルを見つけたので、
翻訳して、ソースコードをちょっと変えて載せておきます。
なお、酔っ払いながらコードを書いたり、翻訳しているので、
えらいことになってますが、その辺はちょっとだけ許してください。
適宜暇なときに修正・改定しておきます。コードはおれおれコーディング規約で書いちゃってます。

というわけでデザインパターン第1回目!
デザインパターン 生成に関するパターン Builderです。

生成に関するパターン

ソフトウェア工学では、生成に関するパターンは、オブジェクト生成メカニズムを扱うデザインパターンであり、その状況に適した方法でオブジェクトを生成しようとするものである。

オブジェクト生成の基本形は設計の問題を起こしたり設計を複雑にする。生成に関するパターンは、このオブジェクトの生成をどうにか管理することによってこの問題を解決する。
この本のこのセクションでは読み手が以前に紹介した関数、グローバル変数、スタックとヒープの違い、ポインタ、静的メンバー関数をよく理解していることを想定している。
見ての通りさまざまな生成に関するデザインパターンがあり、ソースコードをより抽象的にする特別な実装法を扱っていて、いま一つ一つ説明する。

Builder

Builderは同一の生成の手順で異なる表現を生成できるように、複数のオブジェクトの構築をその表現から分離するのに使われる。

問題

複数のオブジェクトを生成したいが、複数のコンストラクタをメンバーに持ちたくないし、たくさんの引数を必要とするメンバーを持ちたくない。

解決法

中間オブジェクトのメンバー関数が、クライアント側のコードにそのオブジェクトが利用できる前に、望んでいるオブジェクトを部分的に定義する。Builderパターンを使うことによって、生成に関するすべての選択肢が特定されるまでにオブジェクトの生成を先延ばしにすることができる。

サンプルソースコード


実行結果

$ ./builder.exe
クロス生地で、マイルドなソースで、ハムとパイナップルのトッピングのピザ
焼いたパン生地で、辛いソースで、ペペロニとサラミのトッピングのピザ

書籍

読んでもよくわからんかった本……文字が多すぎて眠いよ…zzz

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

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

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (210件) を見る