当使用支持命名和可选参数的语言时,构建器模式不再具有实际用途吗?
建造者:
new Builder(requiredA, requiredB).setOptionalA("optional").Build();
可选/命名参数:
new Object(requiredA, requiredB, optionalA: "optional");
3
您如何处理20个可选参数?直到变大为止,Builder都不需要解决问题。至此,您已经描述了两个构造函数(我不会为那么小的问题构建一个Builder)。
即使有可选参数-如果构造函数有两个以上参数,我还是更喜欢使用值对象来封装配置。流畅的界面和构建器也是如此:大于3的任何值都将替换为值对象。
—
Thomas Junk