首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口设计的最佳实践

接口设计的最佳实践
EN

Stack Overflow用户
提问于 2018-04-03 12:37:41
回答 1查看 22关注 0票数 0

我想知道哪个版本是最好的实现。参数是有两个可能值的状态。这是实际问题的一个抽象例子。我正在用一种过程语言(没有类)进行编程,并且没有类型化变量。我刚读了一篇文章,说版本1对可读性和调用者都不好。就我个人而言,我也不喜欢第2版。也许还有更好的选择?

第1版:

doSth(par1, par2)

  • 不冗余+
  • 任务+的单一方法
  • 更复杂的执行-
  • 错误的参数很容易被传递-

第2版:

代码语言:javascript
复制
doSthWithPar1Is1AndPar2Is1() 
doSthWithPar1Is1AndPar2Is2() 
doSthWithPar1Is2AndPar2Is1() 
doSthWithPar1Is2AndPar2Is2()
  • 多余-
  • 太多的方法(特别是参数更多的)-
  • 长方法名-
  • 简单实现+
  • 没有可能被错误传递的参数
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 13:03:43

假设您已经考虑过V1可行,那么不同的参数值组合在如何处理值方面有一些共同之处。

在V2中,您只需输入和阅读更多内容,我会说这是引入错误/不正确和丢失需求的最常见的原因。

在V2中,您必须重复单个实现中常见的内容,如果您犯了错误,总体逻辑充其量也是不一致的。如果你想修复它,你可能需要在几个地方修复它。

但是,您可以基于V1优化代码安全:为该过程选择一个更“冗长”的名称,如

代码语言:javascript
复制
doSomethingVerySpecificWithPar1OfTypeXAppliedToPar2OfTypeY(par1, par2)

(我有点夸张了.)所以你会立即看到你最初的意图。

您甚至可以从V2中获得最佳效果,并引入单独的函数,这些函数只需重定向到V1的公共函数(因此避免了冗余)。清晰性的提高几乎总是超过效率的轻微损失。

代码语言:javascript
复制
doSthWithPar1Is1AndPar2Is1()
{
    doSomethingVerySpecificWithPar1OfTypeXAppliedToPar2OfTypeY(1, 1);
}

永远记住大卫·惠勒:“计算机科学中的所有问题都可以通过另一个层次的间接解决”。

顺便说一句:我不认为长的方法命名一个问题,而是一个好处(当然,在一定的长度内)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49630285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档