質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1904閲覧

JavaでBuilderはどういった場合に使う?

korm

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2014/09/26 08:40

「Java言語で学ぶ デザインパターン入門」を読んで勉強しています。

Builderパターンを使うタイミングがいまいち分からないのですが、これは一般的によく使われるものなデザインパターンなのでしょうか?

単にFactoryパターンではダメなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

標準APIだと、
Calendar.Builder (Java Platform SE 8 )
Locale.Builder (Java Platform SE 8 )
あたりがそうですね。

Calendarのように、設定する項目が多岐に渡る場合は、factoryだとデフォルトパラメーターの無いJavaではオーバーロードメソッドを大量に定義しなければなりません。

builderであれば、必要な項目のbuilder#setXXXメソッドを呼びだしてインスタンスを構築することができます。
Calendarは後から更新可能な(mutableな)クラスなのであまりメリットが感じられないかもしれませんが、更新不可の(immutableな)クラスを構築したいような場合は、builderパターンが役に立つと思います。

投稿2014/09/27 08:47

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Androidのライブラリ、例えば AlertDialog.Builder などが存在します。
http://developer.android.com/guide/topics/ui/dialogs.html#DialogFragment

投稿2014/09/27 07:47

hello-world

総合スコア1342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

BuilderパターンとFactoryパターンの重要な違いは、Builderはオブジェクトをビルドする場合に多くの部品を生成する必要があるような場合によく使われます。
例えばDOMです。DOMは最終的なオブジェクトを得るためにたくさんの節を生成し、属性付けする必要があります。

それに対し、Factoryパターンは1回のメソッド呼び出しで簡単にオブジェクト全体(完成品)を生成することができるときに使われます。

Builderを使う一つの例としては、上記に挙げたようなXML文書のビルドが挙げられるかと思います。

投稿2014/09/27 07:30

whiskey235

総合スコア169

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問