我们有一个名为copy(fileName)
的API,基本上它可以将文件从源复制到目标,并且由于源和目标位于同一位置,因此我们不需要指定它。
现在,我们将文件系统划分为不同的位置,例如A
,B
,C
,D
。我们始终会复制到D
,但是文件可能来自A
,B
或C
。所以我们需要一些逻辑,例如:
function checkAndCopy(fileName) {
if (fileExistInA) copy from A to D
else if (fileExistInB) copy from B to D
else if (fileExistInC) copy from C to D
}
我想将此函数放在后端中,原因是后端更改应封装在API中,这样调用方就不必担心实现细节了。
但是我们的后端团队不想维护它,他们只想提供copyFrom(fileName,source)的最终版本。因此,如果前端不知道源,我建议他们将源作为可选参数或空字符串。一旦进行了前端更改,我们将始终发送源,并从copyFrom(fileName,source)中删除空字符串/可选参数逻辑。
后端人们认为使用可选参数或故意传递空字符串是一个糟糕的设计,即使他们知道这是临时的,也不要这样做。
那么哪个设计更好?
请注意,我的问题不是关于如何编写函数,而是关于将这些函数放在何处。
答案 0 :(得分:2)
您应该只在API中进行原子调用,例如copy(source, target)
。
复制功能本身不应与特定目录相关。用例是复制,而不是确定目标目录。