我正在考虑使用Singelton设计模式并创建我的Main class的Singelton。在搜索时,我发现一些评论认为这是一种非常糟糕的编程习惯,特别是因为静态方法的声明并不能使面向对象的编程公道。您对我的代码有什么建议吗?
public class MainClass {
private static MainClass instance = new MainClass();
public static MainClass getMainInstance() {
return instance;
}
public static void main(String[] args) {
MainClass main = Main.instance;
}
}
首先对于在类上实现的单例对象必须包括以下内容。
- 应该将所有构造方法标记为私有。
- 它应该具有静态方法,该方法具有仅一次创建对象的逻辑。
- 它应该具有静态引用类变量以容纳单个可能的实例。
有了这些,我们可以确保Singleton对象,但这不是唯一的方法,因为我们可以使用创新的设计模式或Fly weight设计模式来克服静态方法调用。
关于静态关键字,它仍在使用宾语。众所周知,任何对象都具有等效的Singleton类类加载过程中在堆上创建的对象。所以它不是OOPS。
希望这会有所帮助!