Singleton Design Pattern 和 Java 中的 Singleton Object 有什么区别?
What is the difference between Singleton Design Pattern and Singleton Object In Java?
这是最近在采访中被问到的问题。
根据我的说法,通过单例模式我们可以实例化单例对象。但是,我想知道我说的对不对。
你是对的,
单例设计模式用于实例化单例对象:
SingleObject class provides a static method to get its static instance
to outside world. SingletonPatternDemo, our demo class will use
SingleObject class to get a SingleObject object. source
代码如下所示:
public class SingleObject {
//create an object of SingleObject
private static SingleObject instance = new SingleObject();
//make the constructor private so that this class cannot be
//instantiated
private SingleObject() {
}
//Get the only object available
public static SingleObject getInstance() {
return instance;
}
public void showMessage() {
System.out.println("Hello World!");
}
}
要调用 SingleObject class:
public class SingletonPatternDemo {
public static void main(String[] args) {
//illegal construct
//Compile Time Error: The constructor SingleObject() is not visible
//SingleObject object = new SingleObject();
//Get the only object available
SingleObject object = SingleObject.getInstance();
//show the message
object.showMessage();
}
}
因此,单例设计模式描述了如何使用单例对象。 WikiLink
请记住,单例实际上是伪装的全局变量。 因此单例被认为已被弃用。
单例模式是路线图。 Singleton Object 实际上就是走那条路。
并且您可以驾车、步行和 运行 通过该路线。如果你开车,你可以使用汽车、卡车(或)任何其他方式。
Single Pattern 是一种做某事的方式(或)方法。您可以使用任何语言、计算机(或)平台来实际实现该单例对象。
Singleton_design_pattern 是一种设计模式,它将 class 的实例化限制为一个对象。当只需要一个对象来协调整个系统的动作时,这很有用。
Singleton对象是一个单独的对象,它是通过实现Singleton方法创建的。
实现这个(TRUE Singleton),
- 确保您的 class 是
final
。其他人不能子class它并创建一个实例
- 将你的单例对象设为
private static final
- 提供
private
构造函数和publicgetInstance()
方法。
- 确保此单例 class 仅由一个
ClassLoader
加载
- 覆盖
readResolve()
方法和 return 相同的实例。
为了有效实施 Singleton
,也请参考这个 SE 问题。
What is an efficient way to implement a singleton pattern in Java?
这是最近在采访中被问到的问题。 根据我的说法,通过单例模式我们可以实例化单例对象。但是,我想知道我说的对不对。
你是对的, 单例设计模式用于实例化单例对象:
SingleObject class provides a static method to get its static instance to outside world. SingletonPatternDemo, our demo class will use SingleObject class to get a SingleObject object. source
代码如下所示:
public class SingleObject {
//create an object of SingleObject
private static SingleObject instance = new SingleObject();
//make the constructor private so that this class cannot be
//instantiated
private SingleObject() {
}
//Get the only object available
public static SingleObject getInstance() {
return instance;
}
public void showMessage() {
System.out.println("Hello World!");
}
}
要调用 SingleObject class:
public class SingletonPatternDemo {
public static void main(String[] args) {
//illegal construct
//Compile Time Error: The constructor SingleObject() is not visible
//SingleObject object = new SingleObject();
//Get the only object available
SingleObject object = SingleObject.getInstance();
//show the message
object.showMessage();
}
}
因此,单例设计模式描述了如何使用单例对象。 WikiLink
请记住,单例实际上是伪装的全局变量。 因此单例被认为已被弃用。
单例模式是路线图。 Singleton Object 实际上就是走那条路。
并且您可以驾车、步行和 运行 通过该路线。如果你开车,你可以使用汽车、卡车(或)任何其他方式。
Single Pattern 是一种做某事的方式(或)方法。您可以使用任何语言、计算机(或)平台来实际实现该单例对象。
Singleton_design_pattern 是一种设计模式,它将 class 的实例化限制为一个对象。当只需要一个对象来协调整个系统的动作时,这很有用。
Singleton对象是一个单独的对象,它是通过实现Singleton方法创建的。
实现这个(TRUE Singleton),
- 确保您的 class 是
final
。其他人不能子class它并创建一个实例 - 将你的单例对象设为
private static final
- 提供
private
构造函数和publicgetInstance()
方法。 - 确保此单例 class 仅由一个
ClassLoader
加载 - 覆盖
readResolve()
方法和 return 相同的实例。
为了有效实施 Singleton
,也请参考这个 SE 问题。
What is an efficient way to implement a singleton pattern in Java?