我正在制作我的第一个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
发布于 2012-04-25 21:24:14
您可能会发现这个Java设计清单很有用。第一部分是包装设计。
http://theamiableapi.com/2012/01/16/java-api-design-checklist/
费伦茨
发布于 2012-04-25 20:59:48
首先,我想说的是,子包与任何其他包是相同的,在普通java中没有私有包这样的东西,如果您想使用这种特性,就必须使用OSGi。
也就是说,如果您想保护类不被访问,只需删除类名上的public,而只保留"API“类,这就是您的用户将访问的类(将用户称为使用框架的开发人员)。
您创建的包越多,您必须公开的“私有功能”就越多。
https://stackoverflow.com/questions/10323622
复制相似问题