儘管我是一名Java開發人員,並且這個問題涉及到根據Java的OSGi和模塊化,但這個問題確實適用於任何面向對象的3GL。基於組件的體系結構的粒度
我開始掌握真正的「模塊化」開發的概念,並開始真正喜歡OSGi。我有史以來第一次開始考慮以非常細粒度,可重用的專業化部署來部署罐子。然而,這種新的思維模式激起了一些問題。
在純基於組件的體系結構中,每個類都會被破壞嗎?如果不是組件應該如何精細化?每個組件都可以重複使用嗎?
確定模塊化組件的粒度應該如何使用時,有哪些「經驗法則」?提前致謝!
儘管我是一名Java開發人員,並且這個問題涉及到根據Java的OSGi和模塊化,但這個問題確實適用於任何面向對象的3GL。基於組件的體系結構的粒度
我開始掌握真正的「模塊化」開發的概念,並開始真正喜歡OSGi。我有史以來第一次開始考慮以非常細粒度,可重用的專業化部署來部署罐子。然而,這種新的思維模式激起了一些問題。
在純基於組件的體系結構中,每個類都會被破壞嗎?如果不是組件應該如何精細化?每個組件都可以重複使用嗎?
確定模塊化組件的粒度應該如何使用時,有哪些「經驗法則」?提前致謝!
我打算主要從OSGi的角度回答這個問題。
恕我直言,重要的是要區分組件和模塊。 A 組件是一種編程工件:具有行爲並可能爲其他組件提供服務的東西。在實施條款中,您使用OSGi的組件模型之一(如聲明式服務)編程組件。見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
@Mara這裏是基於組件開發的鏈接。 http://en.wikipedia.org/wiki/Component-based_software_engineering –
哇!神奇的答案@尼爾!感謝您的澄清! – IAmYourFaja