我可以像这样实现单例模式吗?

时间:2017-02-02 02:07:09

标签: java design-patterns singleton

想要探索实现Singleton Pattern的新方法。可以将此实现视为单例模式吗?如果否请提出改进​​代码的建议。

 public interface Test {
        Singleton single = new Singleton();
        class Singleton {
            int i = 10;
            private Singleton(){}
        }
    }

1 个答案:

答案 0 :(得分:0)

是您可以通过这种方式实现Singleton模式。 Interface声明的所有字段都是final和static。并且您在具有私有构造函数的接口内定义了内部类。你的方式不同但接缝工作。由于字段是静态的和最终的,因此只有在加载接口的.class文件时,它们才会被实例化一次。

尽管代码有效,但这仍然不是实现Singleton的最佳方法。您可以使用私有构造函数创建一个普通的Public类。在这个类中,您可以定义同一类类型的public static final字段,使用new关键字初始化它(您可以这样做,即使构造函数是私有的,因为类中的代码可以获得私人实体)。您的班级现在是Singleton。另一种方法是通过Enum