OSGi入门篇:模块层

模块层是OSGi框架中最基础的一部分,其中Java的模块化在这一层得到了很好的实现。但是这种实现与Java本身现有的一些模块化特性又有明显的不同。OSGi的产生恰恰是为了弥补之前一些技术的缺陷。 模块化其实就是计算机科学中常见的一个概念: “将一个大型系统分解为多个较小的互相协作的逻辑单元,通过强制设定模块之间的逻辑边界来改善系统的维护性和封装性”。


Java应用架构读书笔记(6):实现复用

最大化的复用必然导致可用性的复杂化。模块可复用,必然要求模块具有灵活性,而灵活性会导致复杂性提高。 如何处理复用性和可用性之间的平衡是一个复杂的问题,而这个问题跟依赖有关。 我们在复用方面已经做了大量的工作。今天我们有大量的框架可供选择,比如Web框架,ORM框架,安全框架等。这些框架主要解决的是横向的问题,即主要关注基础设施和样例代码,但是对垂直的业务问题缺乏有效的解决方案。


模式2:Module Reuse

模块复用:在模块层面上强调复用能力 面向对象编程范型为软件开发提供了一系列新的方法、原则和模式,其最重要的目的就是提高软件复用的程度。但是,随着软件系统规模的日益庞大以及越来越高的复杂度,强调类层面(class-level)上的复用的面向对象方法难免遇到了一些困境。 为了更有效的复用,就需要更高层次的复用单元——模块(module),在Java中就是JAR文件,代码被组织聚合在模块里并且可以被单独部署。


模式12:Module Facade

创建一个表面作为进入其他细粒度模块内部实现的粗粒度接口 我们创建细粒度的、轻量级的模块来增加模块复用性。不幸的是,由于使用者必须明白很多不同模块的API以及联合起来使用它们来完成某项任务,这些细粒度模块很难使用。此外,轻量级模块必须被配置到环境上下文中。因此,细粒度、轻量级模块更难使用。