1 回答

TA貢獻1806條經(jīng)驗 獲得超8個贊
簡短的回答:這取決于你。
長答案:你可以隨心所欲地做;)
OSGi 中沒有規(guī)則禁止將多個組件(屬于聲明性服務并用 @Component 注釋的類)放在一個包中。然而,這在一定程度上取決于您如何定義捆綁包的邊界,即,您是為每個功能創(chuàng)建一個捆綁包,還是在 x 層應用程序中的每一層創(chuàng)建一個捆綁包(例如,一個捆綁包用于數(shù)據(jù)庫,一個捆綁包用于邏輯和GUI 的一包)。這些示例完全是任意的,但您可以看到,根據(jù)您定義捆綁包范圍的方式,有時將多個組件放入一個捆綁包中是有意義的,有時則不然。
關于我建議如何構(gòu)建捆綁包:
為每個功能創(chuàng)建一個 API 包,例如定義數(shù)據(jù)庫服務的 API、定義登錄服務的 API 或應用程序應有的任何功能。API 包通常只包含接口、抽象類和數(shù)據(jù)類型。
為每個實現(xiàn)創(chuàng)建一個實現(xiàn)捆綁包,其中包含實現(xiàn) api 捆綁包中定義的服務接口的類,并使用 API 捆綁包中的數(shù)據(jù)類型與其他捆綁包中的服務進行通信。
每個實現(xiàn)包可以放置您認為適合服務實現(xiàn)的盡可能多的組件,但盡量不要實現(xiàn)超出您為此包定義的范圍邊界的功能。
添加回答
舉報