Java设计模式【一】:单例模式

138 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

写在前面

设计模式,其实在一定程度上代表着最优解,最佳实践,由一部分开发人员根据经验总结而出的解决方案,分别针对不同的场景的最优解决方案。

在当前环境下,设计模式也被开发人员极为推崇,并且利用其解决众多的问题,所以,学习设计模式刻不容缓。

下面我们就来看一下“单例模式”。

正文

单例模式是Java设计模式中最基础的几个设计模式之一,属于创建型设计模式,其核心就是提供了创建对象的最佳解决方案。

单例模式还分为饿汉模式和懒汉模式。

使用场景

单例模式一般在只需要一个对象既可以解决的情况下进行使用。

优缺点

单例模式最大的优点就是只有一个对象实例,这大大减少了服务器内存的开销,没有了频繁的创建和销毁操作。

缺点就是与其他类之前没办法存在继承关系等,只关心自身的实现。

代码实现

饿汉模式

public class SingleDemo { 
 private static SingleDemo instance = new SingleDemo(); 
 private SingleDemo (){} 
 public static SingleDemo getInstance() { 
   return instance; 
 } 
}

懒汉模式

public class SingleDemo {
    private static SingleDemo instance;
    private SingleDemo (){}

    public static SingleDemo getInstance() {
        if (instance == null) {
            instance = new SingleDemo();
        }
        return instance;
    }
}

但是这种懒汉模式其实是线程不安全的,需要加上同步锁才行。

public class SingleDemo {
    private static SingleDemo instance;
    private SingleDemo (){}
    public static synchronized SingleDemo getInstance() {
        if (instance == null) {
            instance = new SingleDemo();
        }
        return instance;
    }
}