多くのBuilder Pattern例では、Builderビルドするオブジェクトの内部クラスを作成しています。
これは、Builderビルドの内容を示すため、ある程度意味があります。ただし、静的に型付けされた言語では、Builderビルドの内容がわかります。
一方、Builderが内部クラスである場合、の内部を見ずにビルドするクラスを知る必要BuilderがありBuilderます。
また、ビルダーを内部クラスとして使用すると、外部クラスから参照できるため、インポートの数が減ります(気になる場合)。
そして、がBuilder同じパッケージ内にあるが、のような内部クラスではない実用的な例がありStringBuilderます。あなたはそれがそう名付けられているので、構築するBuilder 必要があることを知っていStringます。
そうは言ってもBuilder、内部クラスを作成する理由として考えられる唯一の正当な理由は、クラスのBuilder名前を知らず、命名規則に依存せずにクラスが何であるかを知っているということです。たとえば、もし私がStringBuilder内部クラスだったStringとしたら、おそらく私がそれよりも早く存在したことを知っていただろう(投機的)
Builder内なるクラスにする他の理由はありますか、それとも単に好みと儀式に帰着しますか?