如何避免if语句和调用多个构造函数

Lan*_*erX 1 java oop if-statement

我想问一下如何处理多个构造函数.

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);
Run Code Online (Sandbox Code Playgroud)

我想避免复杂的if else块.在这种情况下,可伸缩性也不是很好.

Zav*_*ior 8

在这里使用构建器模式怎么样?有关代码示例,请参阅Javacodegeeks的此链接

QueryProducer.withQuery(yourQuery).withA(a).withB(b).build();
Run Code Online (Sandbox Code Playgroud)