加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java的API设计实践

发布时间:2019-01-29 16:26:55 所属栏目:建站 来源:佚名
导读:Introduction 了解在设计Java API时应该应用的一些API设计实践。通常,这些实践很有用,并确保API可以在模块化环境中正确使用,例如OSGi和Java平台模块系统(JPMS)。有些做法是规定性的,有些则是禁止性的。当然,其他良好的API设计实践也适用。 OSGi环境

在OSGi环境中,可以添加和删除模块,因此可以适应这种动态的API设计非常重要。该 OSGi Declarative Services specification 定义了OSGi的依赖注入模型,它支持这些动态,包括注入对象的撤销。

针对provider和consumer划分API

如简介中所述,API包的客户端有两个角色:API consumer和API provider。 API consumer使用API,API provider实现API。对于API中的接口(和抽象类)类型,重要的是API设计清楚地记录哪些类型仅由API provider实现,而API consumer不可以实现。为了方便记忆,我们把API provider需要实现的部分记为P,把API consumer需要实现的部分记为C。例如,侦听器接口通常由API consumer实现,并且实例传递给API provider。

API provider对API 中P部分和C部分更改都很敏感。API provider必须实现API中P部分的类型的任何新更改,并且必须了解C部分的任何新更改。 API consumer通常可以忽略API中P部分的更改,除非它想要更改以调用新函数。但API consumer对API中C部分的更改很敏感,可能需要修改才能实现新功能。例如,在javax.servlet package, ServletContext由API provider(如servlet容器)实现。为ServletContext添加新方法将要求更新所有API provider以实现新方法,但API consumer不必更改,除非他们希望调用新方法。然而Servlet由API consumer实现,为Servlet添加新方法将要求修改所有API consumer以实现新方法,并且还需要修改所有API provider以使用新方法。就这样ServletContext类似于API的P部分,Servlet类似于API中C部分。

由于通常有许多API consumer和很少的API provider,因此在考虑更改API 中C部分时,API演变必须非常小心。这是因为,您需要更改少数API provider以支持更新的API,但您不希望在更新API时更改许多现有API consumer。 API consumer只需要在API consumer想要利用新API时进行更改。

Conclusion

下次设计API时,请考虑这些API设计实践。然后,您的API将可用于模块化Java和非模块化Java环境。

英文原文: https://developer.ibm.com/articles/api-design-practices-for-java

【编辑推荐】

  1. 面向开发者的18个机器学习平台
  2. 本月 Firefox 65 将加入 Flexbox Inspector 开发者工具
  3. Java 11 究竟比 8 快了多少?看看这个基准测试
  4. Java 编写的开源数据挖掘工具——KEEL
  5. 从项目的 GitHub 星星数看2018年 JavaScript 生态圈
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读