java - 包装递归函数总是一个好的做法吗?

标签 java function recursion wrapper

我正在使用递归函数来计算从一个节点开始到另一个给定的一组规则(例如:最小/最大/确切的停止次数)结束的图表中可能的遍历次数。

我想知道调用一个调用递归函数的包装函数而不是直接调用它是否是一个好习惯。大多数时候我看到人们使用包装函数。

只是想知道为什么以及优点和缺点是什么以及在什么情况下我们必须包装它?

最佳答案

不,这并不总是必要的。仅当您有特定原因时才需要将其包装。以下是您可能需要包装它的几个原因:

  • 如果它传递给自身的参数与它在初始调用中接收的参数不同,无论出于何种原因
    • 也许递归参数很复杂,调用者很难为它们提供适当的初始值
    • 也许初始参数与递归参数明显不同
  • 如果您需要起始位置(例如包装器)具有与递归方法本身不同的访问级别。

可能还有更多。

但是很多递归方法不需要包装。例如,带有谓词的经典深度优先节点遍历方法在递归期间与初始调用期间不需要任何特殊传递,因此无需包装它。

关于java - 包装递归函数总是一个好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690062/

相关文章:

java - 摩尔斯电码音频解码器(Android)

java - 我怎样才能获得用于 Java 的交互式 shell(如 Ruby 的 irb)?

java - Spring 加载的堆栈跟踪

javascript - JavaScript 中的 define([ , function ]) 是什么?

javascript - 原型(prototype)函数内的递归调用

java - 如何在没有局部变量的情况下一次一个字符地反向打印字符串

java - java中的鼠标位置

function - awk 在重定向中出现函数调用错误

c - C语言: MODELDIR "/en-us/en-us"这个函数输入是什么意思

c# - 在 C# 中,在算法中使用递归函数是一种好习惯吗?