De nombreux Builder Patternexemples font de la Builderclasse interne de l'objet qu'il construit.
Cela a un certain sens car il indique ce que les Builderbuilds. Cependant, dans un langage typé statiquement, nous savons ce que les Builderbuilds.
D'autre part , si la Builderest une classe interne, vous devez savoir quelle classe les Builderbuilds sans regarder de l'intérieur Builder.
En outre, avoir le générateur comme classe interne réduit le nombre d'importations car il peut être référencé par la classe externe - si cela vous intéresse.
Et puis il y a des exemples pratiques où le Builderest dans le même paquet, mais pas une classe interne, comme StringBuilder. Vous savez que le Builder devrait construire un Stringcar il est nommé ainsi.
Cela étant dit, la seule bonne raison à laquelle je peux penser pour créer une Builderclasse intérieure est que vous savez ce qu'est la classe Buildersans connaître son nom ou en vous appuyant sur les conventions de dénomination. Par exemple, si StringBuilderc'était une classe interne de, Stringj'aurais probablement su qu'elle existait plus tôt que moi (spéculative).
Y a-t-il d'autres raisons de faire de la Builderclasse intérieure une ou cela revient-il simplement à la préférence et au rituel?