這個問題有點受到我詢問的previous question的啓發。在Java中處理插件是否有很好的模式?
我寫的大部分代碼都與API有關,API本質上必須易於擴展。一個常見的問題是,我和我的團隊的其他成員正在如何處理插件,即可能擴展我們自己的接口並在最終實現中的類應該感覺像是解決方案的原子部分。我想特別是在以下類型的用例(使用汽車來比喻)
接口:
Car
提供的實現:
Ford
Audi
第三方實現方式:
Toyota
我們通常需要的是,類CarDealer
需要知道Car
的所有現有實現,而不必強制第三方在配置文件中明確聲明Car
。我一直在想的一個想法是讓Car
的實現註冊自己CarDealer
,但是這會打開一個新的蠕蟲罐,因爲Toyota
(或任何其他實現)不會被初始化,直到它們被明確引用,這是一個catch22。註釋Car
的實現然後遍歷代碼並使用相關注釋初始化任何類也是一種方法,但恐怕這可能會非常耗費資源。
我覺得我們不能成爲這個問題的第一個,所以有沒有已知的設計模式來解決它呢?
請參閱http://stackoverflow.com/questions/7587318 – Mot