我想问一下如何处理多个构造函数。
if(a != null && b != null)
return new QueryProducer(query, a, b);
else if(a != null)
return new QueryProducer(query, a);
else if(b != null)
return new QueryProducer(query, b);
else return new QueryProducer(query);
我想避免复杂的if else块。在这种情况下,可伸缩性也不是很好。
答案 0 :(得分:8)
在这里使用构建器模式怎么样?有关代码示例,请参阅Javacodegeeks的this link
QueryProducer.withQuery(yourQuery).withA(a).withB(b).build();
答案 1 :(得分:0)
创建一个构建器,根据传递的参数构建QueryProducer。您可以将用于创建对象的所有逻辑放在一个位置。我想到的另一件事是将所有三个参数传递给构造函数,并在那里处理它,但我几乎总是避免在构造函数中放置任何逻辑,因为可能发生异常。
答案 2 :(得分:0)
正如其他人已经回答的那样,如果您遇到以下任何一种情况,那么您应该强烈考虑使用Builder模式(使用辅助对象 - 通常由对象类中的静态嵌套类定义 - - 构造你想要的对象: