代码之家  ›  专栏  ›  技术社区  ›  卢声远 Shengyuan Lu

API的_功率重量比是什么?

  •  8
  • 卢声远 Shengyuan Lu  · 技术社区  · 14 年前

    在布洛赫的演讲中,他说设计师应该寻找 良好的功率重量比 对于API。此外,他还强调 概念重量比体积更重要 艾斯。我想重量是为了__ 概念权重 艾尔, 大量的 用于类的方法数。

    但我无法理解 概念权重 _是什么? 功率重量比 是的。欢迎解释!

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

    产地:

    API应尽可能小,但不能小

    • API应满足其要求
    • 当有疑问时,把它放在一边。
      • 功能、类、方法、参数等。
      • 您可以随时添加,但不能删除
    • 概念重量比体积更重要
    • 寻找一个好的功率重量比
    5 回复  |  直到 12 年前
        1
  •  5
  •   Michael Borgwardt    14 年前

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

    因此,如果从技术上讲,如果API的典型客户机必须显式地使用许多属于API的类来使用它,那么API就具有很高的概念权重。

    “好的权值比”意味着API应该使用尽可能少的公共类来提供尽可能多的功能。这意味着API应该:

    • 不添加领域中不存在的概念或其自身的抽象。
    • 对于复杂域,提供最常用的功能的快捷方式,允许典型用户绕过域中更复杂的部分。
        2
  •  5
  •   Bozho    14 年前

    我想说

    • 功率=API提供的功能量
    • 权重=学习API所需的努力
        3
  •  1
  •   Vinko Vrsalovic    14 年前

    我想,一个具有良好的权值比的API是一个提供大量功能(电源)的API,而不需要太多的努力就能正确地使用它(重量)。

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

    如果能链接到布洛克的演讲,这将是很有帮助的,他可能指的是其他的东西:—)

        4
  •  1
  •   Eldelshell    14 年前

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

        5
  •  0
  •   stephan f    12 年前

    API甚至整个语言的权值比的另一个重要方面是它的冗长性。也就是说,要完成一项任务,必须键入多少内容,以及结果代码的可读性。在Java中, Iterator Enumeration ,它设计用来替换的接口,只是因为 迭代器 具有较短的名称和较短的方法名称,这些名称不会比需要的长,并且在不丢失清晰性的情况下执行相同的工作(以及附加的 remove 方法)。