Java 如何创建提供某些接口实现的类

Java 如何创建提供某些接口实现的类,java,Java,我的应用程序中有一些接口,我想创建singleton类,它提供了这些接口的实现。像这样: public class Singleton{ //singleton's stuff private Interface1 interface1Impl; private Interface2 interface2Impl; public Interface1 getInterface1(){ return interface1Impl; }

我的应用程序中有一些接口,我想创建singleton类,它提供了这些接口的实现。像这样:

public class Singleton{
    //singleton's stuff

    private Interface1 interface1Impl;
    private Interface2 interface2Impl;

    public Interface1 getInterface1(){
        return interface1Impl;
    }

    public Interface2 getInterface2(){
        return interface2Impl;
    }
}

我正在寻找的-为应用程序中的每个类提供相同的接口实现。通过这种方式,一切都很好,但这是实现这一点的好方法吗?

在我看来,您可以实施,如果是这样的话,这是一个很好的库供您使用。

是的,它看起来很像一个工厂(或者服务定位器更适合您的情况)


工厂几乎总是比单身汉更好的主意。例如,当您需要工厂时,它可以作为一个单体工作(延迟初始化、缓存),当您需要其他东西(用于测试、线程安全等)时,您可以更改此行为。

我相信您需要的是抽象工厂模式。它看起来有点像一个门面。谢谢,工厂正是我想要的。但我有一个问题-工厂的方法应该总是创建新的实现实例,还是可以在构造函数中创建它们(实现)?工厂方法可以返回可重用(缓存)对象:类似于
Integer的东西。对于多次调用,fromString('1')
将返回相同的
Integer(1)
对象。您可以进一步抽象出来,并按照@Peter的建议使用。Factory将实例的构造移到代码之外。DI将工厂移到代码之外。每个感兴趣的类在创建时接收一个
接口1
实现;此实例的构造及其生命周期的控制在DI框架上。