如何在我的SomethingManager类的实现之间切换?

时间:2011-02-01 15:59:10

标签: java oop spring design-patterns java-ee

我有一个具有OrgManager界面的应用程序,它有一个尚未构建的OrgManagerImpl

OrgManagerImpl必须去讨论一些我们无法访问的REST API第三方内容。

因此,当我测试Web前端时,我编写了一个实现OrgManager的模拟OrgManagerImpl,但是在上线时我将需要交换该实现。

但是现在我想要让servlet根据某些条件选择其OrgManager实现。

当我调用myOrgManager.findCompany(“SomeCompanyId”)时,我希望myOrgManager能够查看所有可能的实现来查找公司并列出一个大清单。

另外,我想当myOrgManager.createCompany(公司)更喜欢一个实现而不是其他实现。

我似乎正朝着一个UserManagerManager对象......但我觉得这可能缺少我应该知道的Java或面向对象设计的某些方面。

有人可以提出我应该使用的模式或策略吗?

由于

2 个答案:

答案 0 :(得分:2)

Spring DI在这里非常有用。

只需更改xml

即可切换到其他实现

答案 1 :(得分:2)

如果您使用的是Spring,那么可以配置和注入您的实现。可以轻松更改运行时类型(即实现)。

或者,如果您不使用Spring,那么您可能需要查看某种工厂模式,工厂决定为您提供哪种实现。您的工厂可以使用某种外部配置(例如配置文件,环境变量等)来决定要使用的实现。