我们有一个名为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)中删除空字符串/可选参数逻辑。
后台人员认为使用可选参数或故意传递空字符串是一个糟糕的设计,即使他们知道这是暂时的,也不希望这样做。
那么哪种设计更好呢?
请注意,我的问题不是关于如何编写函数,而是将这些函数放在哪里。
发布于 2019-06-05 04:24:48
在应用程序接口中应该只有像copy(source, target)
这样的原子调用。复制功能本身不应与特定目录相关。它的用例是复制,而不是确定目标目录。
https://stackoverflow.com/questions/56450457
复制相似问题