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

卢声远*_* Lu 9 java api

在Bloch的演讲中,他说设计师应该寻找API的良好功率重量比.此外,他还强调" 概念重量比散货更重要 ".我猜重量是' 概念重量 ',体积是一类方法的数量.

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

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

起源:

API应尽可能小但不小

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

Boz*_*zho 5

我想说的是

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


Mic*_*rdt 5

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

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

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

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