首页 > 解决方案 > 区分 gem 的外部和内部“公共”API 的正确术语是什么?

问题描述

“公共”和“私有”函数/方法之间的区别在整个编程世界中都可以找到。许多语言将这种区别形式化。Ruby 有一个可选版本,带有//public访问修饰符。在这个框架中,一种方法是一种对可以调用它的位置没有语言强制限制的方法。privateprotectedpublic

但是,编写良好的库 (gem) 具有不同意义上的“公共”API。gem 的公共 API 包含作者打算让 gem 的消费者使用的所有构造。文档、测试和稳定性承诺可以集中在这个公共 API 上。

这与“public”的访问修饰符意义上的公共 API 不同。例如,您的 gem 可能会A向其用户公开某些类。A内部使用 class BA要想调用方法,必须是B方法。但是,如果不打算由 gem 消费者直接使用,则不是 gem 的公共 API 的一部分。BpublicBB

两个问题:

注意:我发现了这个类似的 8 岁问题,但它在 2021 年并没有完全回答我的问题。

标签: ruby

解决方案


推荐阅读