Java的API计划实践
在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 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |