在设计通用库的公共(public) API 时,应该公开多少内部使用的低级内容?一方面,用户不应该过分依赖实现细节,过多的低级函数/类可能会使 API 变得困惑。因此,下意识的 react 可能是“无”。另一方面,某些低级功能可能对人们有用,并且公开更多功能可以防止抽象反转(在高级构造之上重新实现低级构造)。
此外,公开更多底层细节可以提供性能捷径。例如,假设您有一个函数来查找数组的中位数。最不令人惊讶的原则是,您应该复制数组,以便 API 的用户不必关心其实现涉及元素重新排序的副作用。在这种情况下,您是否应该注意到,median() 会消耗内存分配,并提供另一个绕过分配的函数,但会任意重新排序用户的输入?
对于公开多少此类细节有哪些一般准则?
最佳答案
尽可能少。
您公开的细节越多,更改就越有可能破坏消费者。
关于api - API 中要公开多少低级内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/431049/