想要探索实现Singleton Pattern的新方法。可以将此实现视为单例模式吗?如果否请提出改进代码的建议。
public interface Test {
Singleton single = new Singleton();
class Singleton {
int i = 10;
private Singleton(){}
}
}
答案 0 :(得分:0)
是您可以通过这种方式实现Singleton
模式。 Interface
声明的所有字段都是final和static。并且您在具有私有构造函数的接口内定义了内部类。你的方式不同但接缝工作。由于字段是静态的和最终的,因此只有在加载接口的.class文件时,它们才会被实例化一次。
尽管代码有效,但这仍然不是实现Singleton的最佳方法。您可以使用私有构造函数创建一个普通的Public类。在这个类中,您可以定义同一类类型的public static final
字段,使用new
关键字初始化它(您可以这样做,即使构造函数是私有的,因为类中的代码可以获得私人实体)。您的班级现在是Singleton
。另一种方法是通过Enum
。