7

我正在制作我的第一个 API,它可以从网站获取数据并解析它。所以里面有很多网络和解析。我读到 API 有一个不应该公开的内部包;就像在 Javadocs 中一样。所以我的问题是什么应该和不应该放在内部包中。这是我的包装设计,我忽略了不重要的。

.networkstats
.networkstats.model
.networkstats.parser

包里面networkstats有一个类叫做NetworkStats. 这是处理和检索所有网络连接的主要类。然后它使用parser包内的类来处理数据。在它返回一个保存包内数据的模型类之后model。我想包含内部包,因为会有一些类和接口不打算由用户使用。

例如,我想让一个类处理所有网络连接,以便其他类NetworkStats可以访问它。我想这样做的原因是因为我不想在其他类中复制代码,因为它可以在一个地方。当然我不希望其他用户使用这个类,所以我会把它放在内部包中?我也会把我的parser包裹放在内部的。所以我的主要问题是,您是否将不打算公开使用的类和接口放在内部包中?我知道他们仍然可以访问它。

.networkStats.internal.DataManager // class that handles network connections
.networkStats.internal.parser
4

2 回答 2

10

您可能会发现此 Java API 设计清单很有帮助。第一部分是关于包装设计。

http://theamiableapi.com/2012/01/16/java-api-design-checklist/

费伦茨

于 2012-04-25T21:24:14.543 回答
3

首先我想说的是子包和其他包一样,普通java中没有私有包这样的东西,如果你想要那种功能,你必须使用OSGi

也就是说,如果您想保护类不被访问,只需删除类名上的 public,只保留“API”类,即您的用户将访问的类(将用户称为使用框架)。

您创建的包越多,您必须公开的“私有功能”就越多。

于 2012-04-25T20:59:48.807 回答