根據我在不同的地方(one example)閱讀過的最佳實踐,理想的是分離API和實現,但也僅僅導出API包中的包而不是實現包中的包,應該改爲註冊爲服務。osgi繼承的實現導出
但是我還不清楚你應該如何擴展一個具體的類。在我看來,要能夠做到
class Child extends com.foo.ParentImpl {
}
的IMPL捆綁將需要公開com.foo
AFAIU只有兩種方式
- 出口的具體實施,但是這違反了最佳做法
- 永遠不要從不同的包中擴展類。即將所有類型的層次結合在一起。在我看來,這種戰略模塊化框架的觀點是錯誤的
那麼這樣做的正確方法是什麼?
謝謝尼爾。我也同意你的看法,繼承被高估了 – Hilikus