首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java设计-内部设计

Java设计-内部设计
EN

Stack Overflow用户
提问于 2012-04-25 20:54:43
回答 2查看 2.5K关注 0票数 7

我正在制作我的第一个API,它从网站上获取数据并对其进行分析。因此,其中包含了大量的网络和解析。我读到API有一个不应该公开的内部包,就像在Javadocs中一样。因此,我的问题是,什么应该和不应该放在内部包中。这是我的包装设计,我把不重要的东西都省去了。

代码语言:javascript
运行
复制
.networkstats
.networkstats.model
.networkstats.parser

networkstats包中有一个名为NetworkStats的类。它是处理和检索所有网络连接的主类。然后,它使用parser包中的类来处理数据。返回一个模型类,该类在model包中保存数据。我希望包含内部包,因为会有一些类和接口不打算供用户使用。

例如,我希望使一个类处理所有的网络连接,以便其他类(如NetworkStats )能够访问它。我之所以要这样做,是因为我不想在其他类中复制代码,因为代码可以放在一个地方。当然,我不希望其他用户使用这个类,所以我会把它放在内部包中?我也会将我的parser包放在内部包中。所以,我的主要问题是,您是否在内部包中放置了不适合在公共场合使用的类和接口?我知道他们还是可以进入的。

代码语言:javascript
运行
复制
.networkStats.internal.DataManager // class that handles network connections
.networkStats.internal.parser
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-25 21:24:14

您可能会发现这个Java设计清单很有用。第一部分是包装设计。

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

费伦茨

票数 10
EN

Stack Overflow用户

发布于 2012-04-25 20:59:48

首先,我想说的是,子包与任何其他包是相同的,在普通java中没有私有包这样的东西,如果您想使用这种特性,就必须使用OSGi。

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10323622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档