这是最近在一次采访中被问到的问题。据我说,通过单例模式我们可以实例化单例对象。但是,我想知道我是否正确。
问问题
881 次
3 回答
2
你是对的,单例设计模式用于实例化单例对象:
SingleObject 类提供了一个静态方法来获取其静态实例到外部世界。SingletonPatternDemo,我们的演示类将使用 SingleObject 类来获取 SingleObject 对象。资源
代码如下所示:
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 类:
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();
}
}
因此,单例设计模式描述了如何使用单例对象。维基链接
请记住,单例实际上是伪装的全局变量。因此,单身人士被认为已被弃用。
于 2016-06-10T13:24:38.070 回答
1
单例模式是路线图。单例对象实际上正在通过这条路线。
你可以开车、走路和跑步穿过那条路线。如果您开车,您可以使用汽车、卡车(或)任何其他方式。
同样的方式单一模式是做某事的一种方式(或)方法。您可以使用任何语言、计算机(或)平台来实际实现该单例对象。
于 2016-06-10T13:44:51.977 回答
0
Singleton_design_pattern 是一种将类的实例化限制为一个对象的设计模式。当需要一个对象来协调整个系统的动作时,这很有用。
单例对象是通过实现单例方法创建的单个对象。
为了实现这一点(TRUE Singleton),
- 确保您的班级是
final
. 其他人不能对它进行子类化并再创建一个实例 - 使您的单例对象为
private static final
- 提供
private
构造函数和公共getInstance()
方法。 - 确保此 Singleton 类
ClassLoader
仅由一个加载 - 覆盖
readResolve()
方法并返回相同的实例。
也请参阅此 SE 问题以有效实施Singleton
.
于 2016-06-11T13:00:59.107 回答