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