Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可以用基类(非单例类)继承单例类吗。如果是,这是一种良好的做法吗?_Java_Inheritance_Singleton - Fatal编程技术网

Java 可以用基类(非单例类)继承单例类吗。如果是,这是一种良好的做法吗?

Java 可以用基类(非单例类)继承单例类吗。如果是,这是一种良好的做法吗?,java,inheritance,singleton,Java,Inheritance,Singleton,我实际上在尝试实现一些东西,其中一个单例类将扩展一个非单例类 我试过阅读多个答案,但都没有回答我的问题 类父类{ //代码在这里 } 类MySingleton扩展了父类{ //代码在这里 } 我现在有两个问题 1) 这在java/kotlin中可能吗 2) 如果是,这是一种良好的做法吗?请提供一些参考 1) 这在java中可能吗 是的,但是 这取决于您如何实现您的单例。多年来,Singleton越来越成为一种反模式,当您仍在使用它时,最好使用枚举: public enum SomeSingle

我实际上在尝试实现一些东西,其中一个单例类将扩展一个非单例类

我试过阅读多个答案,但都没有回答我的问题

类父类{
//代码在这里
}
类MySingleton扩展了父类{
//代码在这里
}
我现在有两个问题

1) 这在java/kotlin中可能吗

2) 如果是,这是一种良好的做法吗?请提供一些参考

1) 这在java中可能吗

是的,但是

这取决于您如何实现您的单例。多年来,Singleton越来越成为一种反模式,当您仍在使用它时,最好使用枚举

public enum SomeSingleton { 
  INSTANCE;
  ...
当然,当您想要扩展父类时,这不起作用

2) 如果是,这是一种良好的做法吗?请提供一些参考

如前所述,如今(大多数情况下)单身被认为是不好的习惯。因此,添加另一个约束肯定不会使事情变得更好

从概念上讲,这听起来是错误的。如果有人这样做怎么办:

List<Parent> someInstances = Arrays.asList(parentInstanceA, parentInstanceB, thatSingletonInstanceOfMySingleton);
List someInstances=Arrays.asList(parentInstanceA、parentInstanceB、thasingletonInstanceofMySingleton);
突然之间,你会发现很多东西当然并不完全相同,但它们都很好地进入了这个列表


长话短说:我不会这么做。如果是,请使用<强>枚举< /强>,然后考虑使用构造函数而不是继承。< /P > 1)是的。为什么不呢?2) 不,1)是的2)这在很大程度上取决于汉克人的帮助。非常感谢。非常感谢您的详细解释。非常感谢您的帮助。@VrajeshHirani我也非常感谢您的快速和友好的响应!