在Bloch的演讲中,他说设计师应该为API寻找良好的功率重量比。此外,他还强调'概念权重比批量更重要。我猜重量是'概念重量',批量是针对一个类的方法数量。
但是我无法理解'概念重量'是什么,'功率重量比'是什么。欢迎任何解释!
布洛赫举了一个例子:List.subList()
具有良好的“权重比”。如果客户想要知道子列表的索引,他不需要调用低“p2w比率”方法indexOfSubList(a,b,e)
,而是可以调用List.subList(a,b).indexOf(e)
。布洛赫认为这是“权重比”。
产地:
API应尽可能小但不小[/ strong>
答案 0 :(得分:5)
我会说那个
答案 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
方法)。