具有元素的条件包含的生成器
2022-09-02 04:41:56
我一直想知道是否可以更优雅地使用可选参数来做Builder:
我有什么:带有名称,id,年龄的对象。
我有包含年龄的复杂条件,我想在条件成功时将其发送给构建器,但我希望它具有优雅的一个衬里和一个参数。
到目前为止,我拥有什么:
Builder.name("name").id("id").age(age, complexCondition).build();
或
Builder builder = Builder.name("name").id("id");
if(complexCondition){
builder.age(age);
}
有没有更好的选择?我想解决我拥有它的情况,而无需过度工程构建器,并且不会对每个复杂的条件检查进行过度编码。
upd:我正在寻找的是没有以下解决方案的解决方案:
a)将复杂的检查或布尔值传递给构建者 - 而不是他的工作来检查定义
b) 无需在调用 builder 的方法中为每个条件检查添加 3 行