我的应用程序中有一些接口,我想创建单例类,提供它们的实现。像这样:
public class Singleton{
//singleton's stuff
private Interface1 interface1Impl;
private Interface2 interface2Impl;
public Interface1 getInterface1(){
return interface1Impl;
}
public Interface2 getInterface2(){
return interface2Impl;
}
}
我在寻找什么 - 为应用中的每个课程提供相同的界面实现。通过这种方式一切正常,但它是实现这一目标的好方法吗?
答案 0 :(得分:1)
在我看来,您可能正在实施dependency injection,如果是这样的话Google Guice是一个很棒的库供您使用。
答案 1 :(得分:1)
是的,它看起来很像工厂(或可能服务定位器更适合您的情况)。
工厂几乎总是比单身人士更好的主意。例如,Factory可以在需要时作为Singleton工作(延迟初始化,缓存),并且当您需要其他东西(用于测试,线程安全等)时,您可以更改此行为。