理由:
参数的数量太多容易混乱出错。传递太多参数,成本也通常会很高。
讨论:
导致函数的参数太多,通常有两个理由:
缺少抽象。因为缺少抽象,本该组合的对象被分散为单个传递。因为没有一个不变的框架来约束参数的数值,不仅参数的数量变大,也容易出错。
违背了“一个函数一个职责”的原则。函数的工作超越了其本该完成的单个任务。
例子:
标准库函数merge()是我们能舒服处理的极限:
templateclassInputIterator1,classInputIterator2,classOutputIterator,classCompaOutputIteratormerge(InputIterator1first1,InputIterator1last1,InputIterator2first2,InputIterator2last2,OutputIteratorsult,Compa