什么是API的“功率 - 重量比”?

时间:2010-08-30 08:41:03

标签: java api

在Bloch的演讲中,他说设计师应该为API寻找良好的功率重量比。此外,他还强调'概念权重比批量更重要。我猜重量是'概念重量',批量是针对一个类的方法数量。

但是我无法理解'概念重量'是什么,'功率重量比'是什么。欢迎任何解释!

布洛赫举了一个例子:List.subList()具有良好的“权重比”。如果客户想要知道子列表的索引,他不需要调用低“p2w比率”方法indexOfSubList(a,b,e),而是可以调用List.subList(a,b).indexOf(e)。布洛赫认为这是“权重比”。

产地:

API应尽可能小但不小[/ strong>

  • API应满足其要求
  • 如有疑问,请将其删除
    • 功能,类,方法,参数等。
    • 您可以随时添加,但永远不能删除
  • 概念重量比散装更重要
  • 寻找良好的功率重量比

5 个答案:

答案 0 :(得分:5)

我会说那个

  • power = API提供的功能数量
  • weight =学习API所需的工作量

答案 1 :(得分:5)

我将“概念权重”解释为使用API​​时必须学习和理解的抽象概念的数量。概念通常映射到公共类,而非公共类则增加了批量而不是概念权重。

因此,如果您从技术上讲,如果API的典型客户端必须明确使用属于API的许多类来处理它,那么API具有很高的概念权重。

“良好的功率 - 重量比”则意味着API应使用尽可能少的公共类来提供尽可能多的功能。这意味着API应该:

  • 不添加域中不存在的概念或抽象
  • 对于复杂域,提供最常用功能的快捷方式,允许典型用户绕过域中更复杂的部分

答案 2 :(得分:1)

我认为具有良好功率重量比的API是一种API,它提供了大量功能(功率),同时需要很少的努力来正确地工作(重量)。

这可以通过例如"Convention over Configuration"来完成。 (请注意,这只是一个示例,您可以通过多种方式实现此目的。)

将Bloch的演示文稿链接起来会有所帮助,他可能会提到其他内容: - )

答案 3 :(得分:1)

他指的是使用API​​获得的所有内容。他的示例是针对集合API,每次访问它时,您只能获得特定的功能。另一方面,一些API会加载更多东西,只是为了给你一些功能。

答案 4 :(得分:0)

API的功率重量比甚至整个语言的另一个重要方面是它的冗长。也就是说,您需要键入多少才能完成任务以及生成的代码的可读性。在Java中,Iterator具有比Enumeration更好的功率重量比,它是设计用来替换的接口,因为Iterator具有更短的名称和更短的方法名称,不要超过他们需要做同样的工作而不会失去清晰度(以及额外的remove方法)。