Builder は生成に関するデザインパターンの一つで、 複雑なオブジェクトを段階的に構築することができます。
他の生成に関するパターンとは異なり、 Builder ではプロダクト (訳注: 本パターンでは、 生成されるモノのことを一般にプロダクトと呼びます) が共通のインターフェースを持つ必要はありません。 このため、 同じ構築の手続きを経て、 異なるプロダクトを作成することができます。
複雑度:
人気度:
使用例: Builder パターンは Ruby の世界では、 よく知られているパターンです。 多くの設定オプションを持つオブジェクトを作成する必要がある場合に特に便利です。
見つけ方: Builder パターンは、 一つのクラスが生成メソッドを一つ持ち、 結果として得られるオブジェクトの構成を行うメソッドがいくつかあることで識別できます。 ビルダーのメソッドは、 多くの場合連結できます (例: someBuilder.setValueA(1).setValueB(2).create()
)。
概念的な例
この例は、 Builder デザインパターンの構造を説明するためのものです。 以下の質問に答えることを目的としています:
- どういうクラスからできているか?
- それぞれのクラスの役割は?
- パターンの要素同士はどう関係しているのか?
main.rb: 概念的な例
output.txt: 実行結果
他言語での Builder