IAm*_*aja 1 java components osgi reusability
虽然我是一名Java开发人员,但这个问题涉及OSGi和基于Java的模块化,这个问题确实适用于任何面向对象的3GL.
我开始掌握真正"模块化"开发的概念,并开始真正喜欢OSGi.我有史以来第一次开始考虑在非常精细,可重用的专用部署中部署jar.然而,这种新的思维模式引发了一些问题.
在基于组件的纯体系结构中,每个类都会受到震动吗?如果不是组件的粒度应该是多少?是否有可能使每个组件都可重复使用?
在确定模块化组件的粒度时,使用哪些"经验法则"?提前致谢!
我将主要从OSGi的角度来回答这个问题.
恕我直言,区分组件和模块很重要.一个组件是一种编程假象:一些有行为,并可以提供给其他组件的服务.在实现方面,您使用OSGi的组件模型之一(例如Declarative Services)对组件进行编程.请参阅http://wiki.osgi.org/wiki/Component_Models_Overview
甲模块是一个部署假象:它是部件和/或API的包装成能够围绕被复制和安装在各种运行时间伪影.因此,隐式地,您可以在一个模块中打包多个组件,或者为每个组件创建一个模块.
事实上,模块内容很容易重构,因此您不必过于担心粒度:随着您获得OSGi的更多经验,您将找到适合您自己需求的级别.但请记住以下一般建议:
Import-Package而不是表达依赖关系Require-Bundle.见http://wiki.osgi.org/wiki/Use_Import-Package_instead_of_Require-Bundle