java - 包装递归函数总是一个好习惯吗?
问题描述
我正在使用递归函数来计算从一个节点开始并以另一个给定的一组规则(例如:最小/最大/确切的停止数)结束的图形的可能遍历次数。
我想知道调用调用递归函数而不是直接调用它的包装函数是否是一种好习惯。大多数时候我看到人们使用包装函数。
只是想知道为什么以及利弊是什么,在什么情况下我们必须包装它?
解决方案
不,这并不总是必要的。只有在有特定原因时才需要包装它。以下是您可能需要包装它的几个原因:
- 如果它传递给自己的参数与它在初始调用中收到的参数不同,无论出于何种原因
- 也许递归参数很复杂,调用者很难为它们提供适当的初始值
- 也许初始参数与递归参数明显不同
- 如果您需要起始位置(例如包装器)具有与递归方法本身不同的访问级别。
大概还有几个。
但是很多递归方法不需要包装。例如,带有谓词的经典深度优先节点遍历方法在递归期间与初始调用期间不需要任何特殊传递,因此无需包装它。
推荐阅读
- linkedin - 面临从 Linkedin API 获取权限的问题
- bash - 使用自定义 shell 函数过滤 GNU 拆分
- c# - 如何检查是否启动了以 ShellExecute 启动的进程?
- c# - 如何从 Xceed 放大镜中隐藏子元素?
- android - 如何在 tapTargetView 上添加视图?
- php - GUID 验证正则表达式失败换行符
- node.js - mongoose 使用 $set 更新子文档的属性不起作用
- c# - Unity:将网格轻轻包裹在其他网格周围?
- python - 在安装 docker 之前删除 setup.py 中的 docker-py
- javascript - 应出现仅包含具有相同类的子级的 Javascript 单选按钮