设计模式详解
1. 单例模式(Singleton Pattern)
单例模式确保一个类只有一个实例,并提供一个全局访问点。以下是使用单例类的示例代码:
public class SingletonTest {
public static void main(String [] args) {
Singleton mySingle;
mySingle = Singleton.getInstance();
// and we do other stuff here
}
}
当调用 getInstance() 方法实例化单例实例时,它会检查是否已经创建过该实例。如果没有,则使用单例类的私有构造函数创建实例;如果实例已经存在( uniqueInstance 变量不为 null ),则返回该对象的引用。
不过,这种单例模式在多线程 Java 程序中可能会出现问题,因为它不是“线程安全”的。在检查单例实例是否存在和实际创建实例之间,程序可能会被交换出去,而另一个线程会执行。当它交换回来时,可能会错误地创建另一个单例实例。
最简单的解决方法是将 getInstance() 方法声明为同步方法,如下所示:
public synchronized static Singleton getInstance() {
if
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



