我正在使用递归函数来计算从一个节点开始到另一个给定的一组规则(例如:最小/最大/确切的停止次数)结束的图表中可能的遍历次数。
我想知道调用一个调用递归函数的包装函数而不是直接调用它是否是一个好习惯。大多数时候我看到人们使用包装函数。
只是想知道为什么以及优点和缺点是什么以及在什么情况下我们必须包装它?
最佳答案
不,这并不总是必要的。仅当您有特定原因时才需要将其包装。以下是您可能需要包装它的几个原因:
- 如果它传递给自身的参数与它在初始调用中接收的参数不同,无论出于何种原因
- 也许递归参数很复杂,调用者很难为它们提供适当的初始值
- 也许初始参数与递归参数明显不同
- 如果您需要起始位置(例如包装器)具有与递归方法本身不同的访问级别。
可能还有更多。
但是很多递归方法不需要包装。例如,带有谓词的经典深度优先节点遍历方法在递归期间与初始调用期间不需要任何特殊传递,因此无需包装它。
关于java - 包装递归函数总是一个好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690062/