WEB开发网
开发学院软件开发Java 用 OSGi 应用程序开发和工作的最佳实践 阅读

用 OSGi 应用程序开发和工作的最佳实践

 2010-10-09 08:12:40 来源:WEB开发网   
核心提示: 构建 OSGi bundle,一个最佳实践是将任何 API 类从实现类放入单独的 bundle,用 OSGi 应用程序开发和工作的最佳实践(7),原因如下从实现类分离 API 类比较灵活,一个单独的 API bundle 使一个客户端可以使用任何实现提供商;此外,提供商 bundle 已经分离了

构建 OSGi bundle,一个最佳实践是将任何 API 类从实现类放入单独的 bundle。

原因如下

从实现类分离 API 类比较灵活。一个单独的 API bundle 使一个客户端可以使用任何实现提供商;此外,也可使多个提供商同时使用。如果没有这个分离,客户端 bundle 需要重启来连接一个新提供程序 bundle。

该最佳实践也可以减少 API bundle 包依赖性,因而减少不同 API 之间的循环依赖性。当两个 API 实现内部彼此使用 API 时,这很容易发生。

一旦 API 类放入一个独立的 bundle,确保没有实现包被导出是很重要的,API 实现是使用公共 API 作为 OSGi 服务发布的。

示例

图 6 中的场景展示了一个客户端 bundle,从一个没有分离这些包的提供商 bundle 导入 API 类和实现类,这个提供商 bundle 也导出实现类和 API 类。这是一个糟糕的实践,因为没有分离,也因为实现类被导出且不能作为服务公开。

图6. 设计糟糕的提供商 bundle ,其中 API 类和实现类是在同一 bundle 中

用 OSGi 应用程序开发和工作的最佳实践

另一个场景如图 7 所示,其中显示了一个客户端,从一个 bundle 中导入 API 包,从另一个中导入实现包。尽管 API 包和实现包已被分离,提供商仍然导出实现包,而不是作为服务公开该类。

图 7. 设计糟糕的提供商 bundle,其中 API 类和实现类已被分离

用 OSGi 应用程序开发和工作的最佳实践

最后一个场景如图 8 所示,显示了最佳实践。提供商 bundle 已经分离了实现包和 API 包,此外,实现类也被作为 OSGi 服务公开。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:OSGi 应用程序 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接