api - API 中要公开多少低级内容?

标签 api encapsulation abstraction

在设计通用库的公共(public) API 时,应该公开多少内部使用的低级内容?一方面,用户不应该过分依赖实现细节,过多的低级函数/类可能会使 API 变得困惑。因此,下意识的 react 可能是“无”。另一方面,某些低级功能可能对人们有用,并且公开更多功能可以防止抽象反转(在高级构造之上重新实现低级构造)。

此外,公开更多底层细节可以提供性能捷径。例如,假设您有一个函数来查找数组的中位数。最不令人惊讶的原则是,您应该复制数组,以便 API 的用户不必关心其实现涉及元素重新排序的副作用。在这种情况下,您是否应该注意到,median() 会消耗内存分配,并提供另一个绕过分配的函数,但会任意重新排序用户的输入?

对于公开多少此类细节有哪些一般准则?

最佳答案

尽可能少。

您公开的细节越多,更改就越有可能破坏消费者。

关于api - API 中要公开多少低级内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/431049/

相关文章:

python - 如何从 Shopify 调用此电话? (获取/发布)python

c# - 接口(interface)中的IList,实现中的List

javascript - Mongoose 的可选搜索参数?

api - REST API : Where should I code my workflow?

api - Oauth 2.0 是否需要消费者 key /消费者 secret

c++ - 打破封装是个好主意吗?

c++ - 重载 << 运算符 - 多个参数

c++ - 封装与性能

JavaScript——单元测试子任务

java - 设计问题: RMI needs explicit exporting of objects