Au cours de la rédaction des directives de code pour une entreprise, je me suis retrouvé à recommander d'utiliser le modèle Builder d'Efficace Java, au lieu de constructeurs télescopiques.
Cependant, après y avoir réfléchi un peu plus, une solution plus élégante consiste sûrement à supprimer simplement la classe de générateur et à supprimer également les constructeurs supplémentaires avec des arguments facultatifs.
Il suffit donc d'avoir un constructeur avec les paramètres requis, des getters / setters normaux et de commenter le code. Lors de l'implémentation, créez simplement une nouvelle instance de yr object puis définissez les valeurs.
Ma pensée originale était que l'avantage était de supprimer la confusion quant aux paramètres facultatifs et à ceux qui étaient requis; cependant, le véritable avantage vient de l'utilisation du chaînage de méthode / de l'interface fluide.
Le modèle de générateur présente des avantages lorsque vous créez de nombreuses nouvelles instances car l'idé peut faire le travail de jambe et également s'il existe de nombreux (15+) paramètres facultatifs. Cependant, cela vaut-il le temps supplémentaire de coder la classe interne statique, recommanderiez-vous d'utiliser le générateur, ou est-ce une perte de temps?