可能的重复:
特定函数与许多参数与上下文相关
所以我现在已经开发了 3-4 年,了解多种语言,了解一些令人印象深刻的(对于心胸狭隘的人来说 :P )的东西。
但我一直想知道的是;当我创建一个功能时,它应该用于特定目的,还是应该将其塑造为可重复使用,即使我不需要它?
例如:
//JS, but could be any language really
//specific
function HAL(){
alert("I'm afraid I can't let you do that, " + document.getElementById("Name").value + ".");
}
//generic
function HAL(nme){
alert("I'm afraid I can't let you do that, " + nme + ".");
}
//more generic
function HAL(msg, nme){
alert(msg + " " + nme + ".");
}
Run Code Online (Sandbox Code Playgroud)
是的,非常简单的例子,但传达了我想要表达的观点。如果我们举这个例子,我会在第一个例子之外使用它吗?可能不会,所以我很想这样做,但常识会(现在)说服我将其设为第二个,但如果我知道它不会有任何好处,我看不到这种方式的任何好处以任何其他方式使用,即它总是会使用输入的值(是的,我通常会将其放入全局变量中)。
这只是我当时认为最有意义的情况,还是我应该尽可能遵循第二种模式?
函数不应该只是在其他上下文中调用它们的一系列语句。它应该是您想要抽象的功能单元。使函数具体化是好的,但使其上下文敏感则不好。您应该做的是使用帖子中介绍的通用方式(最后一种),但将消息作为常量提供。您使用的语言有某种方法来声明常量,对吗?