例如:
getBooks(author, title)
如果允许作者为空,则将返回所有具有特定标题的书
如果允许标题为空,则将返回特定作者的所有书籍
如果允许两者都为空,则将返回所有书籍,无论标题或作者如何
要消除此问题,请具有以下功能:
getBooks(author)
getBooks(title)
getBooks(author, title)
getBooks()
在新函数中,可能会有冗余代码,或者如果将这些冗余代码分组到一个函数中,我们仍将进入具有空参数的函数。有什么更好的方法来处理此问题-没有冗余代码且没有null参数?
最佳答案
不要过载太多:
getBooksByAuthor(author)
getBooksByTitle(title)
getBooksByAuthorAndTitle(author, title)
getBooks()
请注意,这不会减少代码重用:这些方法可以重用/共享实现中所需的任何代码。