日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

Builder パターンって何さ

JavaFX API doc を眺めてると、GUI 部品関連クラスで XXXBuilder が大量にあったのがなぜ?と思い Builder パターンってのをググってみた。すると、あるオブジェクトを作る時のコンストラクタ引数が大量にあって、どの引数をどの順番に適用したらいいか分からんような時に解決する為のデザインパターンらしい。

えーと、つまりオプショナル引数やキーワード引数が無い言語の代替案って事?

まあ Java がオプショナル引数やキーワード引数に対応しない理由は良くは分からんし別に構わんが、それにしても Builder と Builder がひり出すインスタンスで必須な引数かどうか見るには生成するオブジェクトクラスのコンストラクタAPI doc 見るしかないんかね。

あとデザインパターンで検索した時、現実の例と照らしあわせて解説しているサイトが割と上に出てくる。Builder だと建築家と監督とかどうのこうのと。これは間違ってると思う。プログラミングする時にどういう時に困ってこういうデザパタで解決したと言う例を示さないとダメなんじゃないかね。

自分のデザパタアレルギーの一因を思い出したのでちょっとグチってみた。
ついでに言うと何気に初めて自分の腑に落ちてきたデザインパターンかもしれないw