Javascript 何时使用哪个-多个方法、多个参数或一个选项参数
这个问题来自javascript的观点,但它肯定可以应用于其他语言 我最近越来越多地遇到这个问题,我想知道是否有一个最佳实践,或者至少是良好的设计标准,用于何时构建方法 我看到的显而易见的选项如下所示,每个选项都有一个简单的示例Javascript 何时使用哪个-多个方法、多个参数或一个选项参数,javascript,function,methods,coding-style,Javascript,Function,Methods,Coding Style,这个问题来自javascript的观点,但它肯定可以应用于其他语言 我最近越来越多地遇到这个问题,我想知道是否有一个最佳实践,或者至少是良好的设计标准,用于何时构建方法 我看到的显而易见的选项如下所示,每个选项都有一个简单的示例 多种方法: this.makeGetRequest = function(controller){...} this.makeSynchronousGetRequest = function(controller){...} this.makePostRequest
- 多种方法:
this.makeGetRequest = function(controller){...} this.makeSynchronousGetRequest = function(controller){...} this.makePostRequest = function(controller, data){...}
- 一种方法具有更多参数:
//data would be an optional parameter // this.makeRequest("friends", "GET", true); // this.makeRequest("friends", "POST", false, newFriend); this.makeRequest = function(controller, type, isSynchronous, data){...}
- 一种方法,带有选项参数:
this.makeRequest = function(controller, type, options); this.makeRequest("friends", "POST", {data:newFriend, isSync:false});
$.getJSON()
用于修改的$.ajax()
-Call)
如果您有大量的spechial case或可选参数,那么具有更多参数的一种方法实际上并不灵活,因为您可能会使用第三个示例中提到的options对象
这实际上取决于用例和所需的灵活性/可重用性。
就我个人而言,我总是使用一种方法,即选项参数方法。选项参数的优点是,它可以在不牺牲清晰度的情况下提供无限的选项。当有人指定
data:
或isSync:
时,很明显填写的是什么设置。记住将函数中的第13个参数设置为false
,会导致混淆
因此,在最后两个选项之间,我只在以下情况下使用多个参数:(1)总共少于四个参数,(2)序列是逻辑的且易于记忆(URL,然后是类型,然后是数据),并且(3)不超过一个(最后一个)是可选的。无论如何,这是一条经验法则
多方法与参数化相比怎么样?当您有少量的可能性(GET vs.POST、UseDefaults vs.DontUseDefaults或其他)时,多个方法只是一个开始的选项。考虑到这一点,我可能只在以下情况下设置单独的方法:
选项
对象无论如何,我只是强迫你在两个不同的地方做决定。我宁愿把所有设置都放在一个地方