2011-02-01 52 views
4

我有有OrgManager接口,它有一個應用程序一個尚未將要建成OrgManagerImpl如何在我的SomethingManager類的實現之間切換?

的OrgManagerImpl有去和他談話,這是我們沒有還訪問了一些REST API的第三方的東西。

因此,當我測試Web前端時,我寫了一個實現OrgManager的模擬OrgManagerImpl,但在上線時我需要將該實現交換。

但是現在我處於這種情況,我希望servlet根據某些條件選擇其OrgManager實現。

另外,當我打電話給myOrgManager.findCompany(「SomeCompanyId」)時,我想讓myOrgManager去查看所有可能的實現以找到公司並製作一個大名單。

此外,我希望當我做myOrgManager.createCompany(公司)比其他人更喜歡一個實施。

我似乎正在走向一個UserManagerManager對象...但我覺得這可能會遺漏一些Java或面向對象的設計,我應該知道這一點。

任何人都可以提出一種模式,或者我應該使用的策略嗎?

謝謝

回答

2

Spring DI在這裏非常有用。

您切換到其他實現只是通過改變XML

2

如果您正在使用Spring,那麼你的實現可配置和注入。運行時類型(即實現)可以輕鬆更改。或者,如果您不使用Spring,那麼您可能需要查看某種工廠模式,工廠將決定爲您提供哪種實現。您的工廠可以使用某種外部配置(例如配置文件,環境變量等)來決定要使用的實現。

+0

+1 for non-Spring answer – Paul 2012-11-19 22:47:42